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()
{
mEnabled = false; // in case we're in a profiler call.
while(mProfileList)
ProfilerData * head = mProfileList;
ProfilerData * curr = NULL;
while ((curr = head) != NULL)
{
free(mProfileList);
mProfileList = NULL;
head = head->mNextProfilerData;
free(curr);
}
for(ProfilerRootData *walk = ProfilerRootData::sRootList; walk; walk = walk->mNextRoot)
{
walk->mFirstProfilerData = 0;