leak prevention according to: https://vld.codeplex.com/ apparently we weren't freeing the entirety of the ProfilerData linked list when resetting the Profiler, and that was leading to a pinhole leak per profiled block

This commit is contained in:
Azaezel 2015-06-01 23:45:49 -05:00
parent c152ae86f3
commit a4c09d1680

View file

@ -212,11 +212,14 @@ Profiler::~Profiler()
void Profiler::reset() void Profiler::reset()
{ {
mEnabled = false; // in case we're in a profiler call. mEnabled = false; // in case we're in a profiler call.
while(mProfileList) ProfilerData * head = mProfileList;
ProfilerData * curr = NULL;
while ((curr = head) != NULL)
{ {
free(mProfileList); head = head->mNextProfilerData;
mProfileList = NULL; free(curr);
} }
for(ProfilerRootData *walk = ProfilerRootData::sRootList; walk; walk = walk->mNextRoot) for(ProfilerRootData *walk = ProfilerRootData::sRootList; walk; walk = walk->mNextRoot)
{ {
walk->mFirstProfilerData = 0; walk->mFirstProfilerData = 0;