aboutsummaryrefslogtreecommitdiff
path: root/engines/cruise/cruise_main.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2009-10-10 04:15:38 +0000
committerPaul Gilbert2009-10-10 04:15:38 +0000
commitdf3fbd432de3d0bfc8ec689a5616b34103c63791 (patch)
tree4dea186e6dabb0463adf7f64d8eeedd5c8ff7219 /engines/cruise/cruise_main.cpp
parent6c1cac39567bf6867274c1bb0c93feef72d535c6 (diff)
downloadscummvm-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.cpp12
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();