Greetings, We've been memory leak hunting recently and I'm not sure if this is an actual leak, but I think it's something to keep in mind
In particular I'm referring to the stringbuf that holds the history for a memory request. The way this currently works is that both MemoryRequest::init() functions check if there's a history pointer -- and if there is, they delete it. Now, I haven't gone through and checked all the code paths, but this requires all callers to do get_free_request() followed by init(). Now, you could imagine some code failing to call init(), maybe by like setting the fields manually directly or by calling reset() -- none of these alternate methods will free the memory allocated for the history buffer. I've been too lazy to check all these code paths, but I'm running the gperf heap checker on it now to double check. Now, I think the way it's done this way is to preserve the history buffer for free requests in case something goes wrong, but I think there has to be a better way to do this. Perhaps implementing: get_free_request(MemoryRequest *m); // get a free request and call init(m) to populate it with data and get_free_request(); // get a free request and call init() for the user to get a blank one Anyways, I thought I'd point it out even though it's not a big deal.
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
