diff options
author | Paul Gilbert | 2009-10-10 04:15:38 +0000 |
---|---|---|
committer | Paul Gilbert | 2009-10-10 04:15:38 +0000 |
commit | df3fbd432de3d0bfc8ec689a5616b34103c63791 (patch) | |
tree | 4dea186e6dabb0463adf7f64d8eeedd5c8ff7219 /engines/cruise/cruise_main.cpp | |
parent | 6c1cac39567bf6867274c1bb0c93feef72d535c6 (diff) | |
download | scummvm-rg350-df3fbd432de3d0bfc8ec689a5616b34103c63791.tar.gz scummvm-rg350-df3fbd432de3d0bfc8ec689a5616b34103c63791.tar.bz2 scummvm-rg350-df3fbd432de3d0bfc8ec689a5616b34103c63791.zip |
Further memory leak fixes
svn-id: r44861
Diffstat (limited to 'engines/cruise/cruise_main.cpp')
-rw-r--r-- | engines/cruise/cruise_main.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp index e3e5b4c98d..6f5bf552fa 100644 --- a/engines/cruise/cruise_main.cpp +++ b/engines/cruise/cruise_main.cpp @@ -211,6 +211,17 @@ void resetPtr2(scriptInstanceStruct *ptr) { } void resetActorPtr(actorStruct *ptr) { + actorStruct *p = ptr; + + if (p->next) { + p = p->next; + do { + actorStruct *pNext = p->next; + MemFree(p); + p = pNext; + } while (p); + } + ptr->next = NULL; ptr->prev = NULL; } @@ -1983,6 +1994,7 @@ void CruiseEngine::mainLoop(void) { // Free data removeAllScripts(&relHead); removeAllScripts(&procHead); + resetActorPtr(&actorHead); freeOverlayTable(); closeCnf(); closeBase(); |