[Scummvm-cvs-logs] SF.net SVN: scummvm:[44861] scummvm/trunk/engines/cruise
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sat Oct 10 06:15:38 CEST 2009
Revision: 44861
http://scummvm.svn.sourceforge.net/scummvm/?rev=44861&view=rev
Author: dreammaster
Date: 2009-10-10 04:15:38 +0000 (Sat, 10 Oct 2009)
Log Message:
-----------
Further memory leak fixes
Modified Paths:
--------------
scummvm/trunk/engines/cruise/cruise_main.cpp
scummvm/trunk/engines/cruise/dataLoader.cpp
scummvm/trunk/engines/cruise/function.cpp
scummvm/trunk/engines/cruise/overlay.cpp
scummvm/trunk/engines/cruise/sound.cpp
Modified: scummvm/trunk/engines/cruise/cruise_main.cpp
===================================================================
--- scummvm/trunk/engines/cruise/cruise_main.cpp 2009-10-10 02:16:23 UTC (rev 44860)
+++ scummvm/trunk/engines/cruise/cruise_main.cpp 2009-10-10 04:15:38 UTC (rev 44861)
@@ -211,6 +211,17 @@
}
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 @@
// Free data
removeAllScripts(&relHead);
removeAllScripts(&procHead);
+ resetActorPtr(&actorHead);
freeOverlayTable();
closeCnf();
closeBase();
Modified: scummvm/trunk/engines/cruise/dataLoader.cpp
===================================================================
--- scummvm/trunk/engines/cruise/dataLoader.cpp 2009-10-10 02:16:23 UTC (rev 44860)
+++ scummvm/trunk/engines/cruise/dataLoader.cpp 2009-10-10 04:15:38 UTC (rev 44861)
@@ -307,6 +307,8 @@
error("Unknown fileType in loadFileRange");
}
+ MemFree(ptr);
+
return 0;
}
Modified: scummvm/trunk/engines/cruise/function.cpp
===================================================================
--- scummvm/trunk/engines/cruise/function.cpp 2009-10-10 02:16:23 UTC (rev 44860)
+++ scummvm/trunk/engines/cruise/function.cpp 2009-10-10 04:15:38 UTC (rev 44861)
@@ -276,7 +276,8 @@
cellStruct *pNext = pCurrent->next;
if (pCurrent->freeze == 0) {
- MemFree(pCurrent->gfxPtr);
+ if (pCurrent->gfxPtr)
+ freeGfx(pCurrent->gfxPtr);
MemFree(pCurrent);
}
Modified: scummvm/trunk/engines/cruise/overlay.cpp
===================================================================
--- scummvm/trunk/engines/cruise/overlay.cpp 2009-10-10 02:16:23 UTC (rev 44860)
+++ scummvm/trunk/engines/cruise/overlay.cpp 2009-10-10 04:15:38 UTC (rev 44861)
@@ -113,6 +113,8 @@
MemFree(ovlDataPtr->arrayStates);
MemFree(ovlDataPtr->nameVerbGlob);
MemFree(ovlDataPtr->arrayNameObj);
+ MemFree(ovlDataPtr->arrayRelocGlob);
+ MemFree(ovlDataPtr->arrayNameRelocGlob);
MemFree(ovlDataPtr);
overlayTable[overlayIdx].ovlData = NULL;
Modified: scummvm/trunk/engines/cruise/sound.cpp
===================================================================
--- scummvm/trunk/engines/cruise/sound.cpp 2009-10-10 02:16:23 UTC (rev 44860)
+++ scummvm/trunk/engines/cruise/sound.cpp 2009-10-10 04:15:38 UTC (rev 44861)
@@ -601,9 +601,7 @@
PCSoundFxPlayer::~PCSoundFxPlayer() {
_driver->setUpdateCallback(NULL, NULL);
- if (_playing) {
- stop();
- }
+ stop();
}
bool PCSoundFxPlayer::load(const char *song) {
@@ -674,8 +672,8 @@
_driver->stopChannel(i);
}
_driver->stopAll();
- unload();
}
+ unload();
}
void PCSoundFxPlayer::fadeOut() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list