[Scummvm-cvs-logs] SF.net SVN: scummvm:[55560] scummvm/trunk/engines/drascula

tdhs at users.sourceforge.net tdhs at users.sourceforge.net
Thu Jan 27 08:58:58 CET 2011


Revision: 55560
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55560&view=rev
Author:   tdhs
Date:     2011-01-27 07:58:57 +0000 (Thu, 27 Jan 2011)

Log Message:
-----------
DRASCULA: Fix Memory Leaks in Rooms Table.

Minor whitespace fixes as well.

Modified Paths:
--------------
    scummvm/trunk/engines/drascula/drascula.cpp
    scummvm/trunk/engines/drascula/drascula.h
    scummvm/trunk/engines/drascula/rooms.cpp

Modified: scummvm/trunk/engines/drascula/drascula.cpp
===================================================================
--- scummvm/trunk/engines/drascula/drascula.cpp	2011-01-27 04:13:10 UTC (rev 55559)
+++ scummvm/trunk/engines/drascula/drascula.cpp	2011-01-27 07:58:57 UTC (rev 55560)
@@ -59,7 +59,6 @@
 };
 
 DrasculaEngine::DrasculaEngine(OSystem *syst, const DrasculaGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
-
 	_charMap = 0;
 	_itemLocations = 0;
 	_polX = 0;
@@ -101,6 +100,8 @@
 	_rnd = new Common::RandomSource();
 	g_eventRec.registerRandomSource(*_rnd, "drascula");
 
+	_console = 0;
+
 	int cd_num = ConfMan.getInt("cdrom");
 	if (cd_num >= 0)
 		_system->getAudioCDManager()->openCD(cd_num);

Modified: scummvm/trunk/engines/drascula/drascula.h
===================================================================
--- scummvm/trunk/engines/drascula/drascula.h	2011-01-27 04:13:10 UTC (rev 55559)
+++ scummvm/trunk/engines/drascula/drascula.h	2011-01-27 07:58:57 UTC (rev 55560)
@@ -265,7 +265,6 @@
 
 private:
 	bool _fallBack;
-
 };
 
 class TextResourceParser {

Modified: scummvm/trunk/engines/drascula/rooms.cpp
===================================================================
--- scummvm/trunk/engines/drascula/rooms.cpp	2011-01-27 04:13:10 UTC (rev 55559)
+++ scummvm/trunk/engines/drascula/rooms.cpp	2011-01-27 07:58:57 UTC (rev 55560)
@@ -140,6 +140,18 @@
 }
 
 void DrasculaEngine::freeRoomsTable() {
+	for (uint32 i = 0; i < _roomHandlers->roomParsers.size(); i++)
+		delete _roomHandlers->roomParsers[i];
+	_roomHandlers->roomParsers.clear();
+
+	for (uint32 i = 0; i < _roomHandlers->roomPreupdaters.size(); i++)
+		delete _roomHandlers->roomPreupdaters[i];
+	_roomHandlers->roomPreupdaters.clear();
+
+	for (uint32 i = 0; i < _roomHandlers->roomUpdaters.size(); i++)
+		delete _roomHandlers->roomUpdaters[i];
+	_roomHandlers->roomUpdaters.clear();
+
 	delete _roomHandlers;
 	_roomHandlers = 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