Browse Source

Merge pull request #1333 from Azaezel/PluggingLeaks

Plugging Memory Leaks
Daniel Buckmaster 10 years ago
parent
commit
d89c3b7c6f
2 changed files with 9 additions and 4 deletions
  1. 3 1
      Engine/source/console/console.h
  2. 6 3
      Engine/source/platform/profiler.cpp

+ 3 - 1
Engine/source/console/console.h

@@ -191,7 +191,7 @@ public:
    
    void cleanup()
    {
-      if (bufferLen > 0)
+      if ((type <= TypeInternalString) && (bufferLen > 0))
       {
          dFree(sval);
          bufferLen = 0;
@@ -201,6 +201,8 @@ public:
       ival = 0;
       fval = 0;
    }
+   ConsoleValue(){ init(); };
+   ~ConsoleValue(){ cleanup(); };
 };
 
 // Proxy class for console variables

+ 6 - 3
Engine/source/platform/profiler.cpp

@@ -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;