From a4fbc73ee65db07b8bbc3a7e37bdb6cf19d63e07 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 10 Oct 2009 05:08:56 +0000 Subject: Fixed memory leaks in savegame restoring svn-id: r44863 --- engines/cruise/cruise_main.h | 1 + engines/cruise/saveload.cpp | 3 +++ 2 files changed, 4 insertions(+) (limited to 'engines/cruise') 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); -- cgit v1.2.3