[Scummvm-cvs-logs] SF.net SVN: scummvm:[41859] scummvm/trunk/engines/gob
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Thu Jun 25 12:54:35 CEST 2009
Revision: 41859
http://scummvm.svn.sourceforge.net/scummvm/?rev=41859&view=rev
Author: drmccoy
Date: 2009-06-25 10:54:35 +0000 (Thu, 25 Jun 2009)
Log Message:
-----------
Plugging some memory leaks
Modified Paths:
--------------
scummvm/trunk/engines/gob/game.cpp
scummvm/trunk/engines/gob/inter_v3.cpp
scummvm/trunk/engines/gob/resources.cpp
scummvm/trunk/engines/gob/scenery.cpp
scummvm/trunk/engines/gob/sound/sounddesc.cpp
Modified: scummvm/trunk/engines/gob/game.cpp
===================================================================
--- scummvm/trunk/engines/gob/game.cpp 2009-06-25 10:03:23 UTC (rev 41858)
+++ scummvm/trunk/engines/gob/game.cpp 2009-06-25 10:54:35 UTC (rev 41859)
@@ -95,6 +95,18 @@
}
Game::~Game() {
+ for (int i = 0; i < 5; i++) {
+ warning("%d", i);
+ if (_scriptArray[i] != _script) {
+ warning("DELETE (%d)", _scriptArray[i] != 0);
+ delete _scriptArray[i];
+ }
+ if (_resourcesArray[i] != _resources) {
+ warning("DELETE (%d)", _resourcesArray[i] != 0);
+ delete _resourcesArray[i];
+ }
+ }
+
delete _script;
delete _resources;
}
Modified: scummvm/trunk/engines/gob/inter_v3.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v3.cpp 2009-06-25 10:03:23 UTC (rev 41858)
+++ scummvm/trunk/engines/gob/inter_v3.cpp 2009-06-25 10:54:35 UTC (rev 41859)
@@ -217,8 +217,10 @@
if (((*totData != 2) && (*totData != 5)) ||
(ABS(offY - READ_LE_UINT16(totData + 3)) > 1)) {
- if (curPart == part)
+ if (curPart == part) {
+ delete textItem;
return false;
+ }
stringVar = stringStartVar;
WRITE_VARO_UINT8(stringVar, 0);
Modified: scummvm/trunk/engines/gob/resources.cpp
===================================================================
--- scummvm/trunk/engines/gob/resources.cpp 2009-06-25 10:03:23 UTC (rev 41858)
+++ scummvm/trunk/engines/gob/resources.cpp 2009-06-25 10:54:35 UTC (rev 41859)
@@ -678,6 +678,7 @@
return 0;
}
+ delete stream;
return data;
}
@@ -698,6 +699,7 @@
return 0;
}
+ delete stream;
return data;
}
Modified: scummvm/trunk/engines/gob/scenery.cpp
===================================================================
--- scummvm/trunk/engines/gob/scenery.cpp 2009-06-25 10:03:23 UTC (rev 41858)
+++ scummvm/trunk/engines/gob/scenery.cpp 2009-06-25 10:54:35 UTC (rev 41859)
@@ -963,6 +963,8 @@
pieceDesc[i].top = resource->stream()->readSint16LE();
pieceDesc[i].bottom = resource->stream()->readSint16LE();
}
+
+ delete resource;
}
} // End of namespace Gob
Modified: scummvm/trunk/engines/gob/sound/sounddesc.cpp
===================================================================
--- scummvm/trunk/engines/gob/sound/sounddesc.cpp 2009-06-25 10:03:23 UTC (rev 41858)
+++ scummvm/trunk/engines/gob/sound/sounddesc.cpp 2009-06-25 10:54:35 UTC (rev 41859)
@@ -101,10 +101,16 @@
}
void SoundDesc::free() {
- delete _resource;
+ if (_resource) {
+ delete _resource;
+ _data = 0;
+ }
+ delete[] _data;
+
_resource = 0;
- _data = _dataPtr = 0;
+ _data = 0;
+ _dataPtr = 0;
_id = 0;
}
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