diff options
author | Paul Gilbert | 2009-10-10 05:08:56 +0000 |
---|---|---|
committer | Paul Gilbert | 2009-10-10 05:08:56 +0000 |
commit | a4fbc73ee65db07b8bbc3a7e37bdb6cf19d63e07 (patch) | |
tree | 7a65921ce9954a5ca3a50fc1bc4469aacf527d48 | |
parent | 6bbe30f44b6aab44c269fd7c7775146c8a9085ea (diff) | |
download | scummvm-rg350-a4fbc73ee65db07b8bbc3a7e37bdb6cf19d63e07.tar.gz scummvm-rg350-a4fbc73ee65db07b8bbc3a7e37bdb6cf19d63e07.tar.bz2 scummvm-rg350-a4fbc73ee65db07b8bbc3a7e37bdb6cf19d63e07.zip |
Fixed memory leaks in savegame restoring
svn-id: r44863
-rw-r--r-- | engines/cruise/cruise_main.h | 1 | ||||
-rw-r--r-- | engines/cruise/saveload.cpp | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/engines/cruise/cruise_main.h b/engines/cruise/cruise_main.h index 0b19ce64e5..ef15b7c923 100644 --- a/engines/cruise/cruise_main.h +++ b/engines/cruise/cruise_main.h @@ -114,6 +114,7 @@ void closeAllMenu(void); int removeFinishedScripts(scriptInstanceStruct *ptrHandle); void initBigVar3(void); void resetActorPtr(actorStruct *ptr); +void removeAllScripts(scriptInstanceStruct *ptrHandle); void MemoryList(); void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname); diff --git a/engines/cruise/saveload.cpp b/engines/cruise/saveload.cpp index b2a1514ae5..fb752ce2a7 100644 --- a/engines/cruise/saveload.cpp +++ b/engines/cruise/saveload.cpp @@ -665,6 +665,7 @@ void initVars(void) { resetPreload(); freeCTP(); + freeBackgroundIncrustList(&backgroundIncrustHead); freezeCell(&cellHead, -1, -1, -1, -1, -1, 0); // TODO: unfreeze anims @@ -672,6 +673,8 @@ void initVars(void) { freeObjectList(&cellHead); removeAnimation(&actorHead, -1, -1, -1); + removeAllScripts(&relHead); + removeAllScripts(&procHead); changeScriptParamInList(-1, -1, &procHead, -1, 0); removeFinishedScripts(&procHead); |