[Scummvm-cvs-logs] SF.net SVN: scummvm:[47482] scummvm/trunk/engines/sci/engine/savegame.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sat Jan 23 19:24:11 CET 2010


Revision: 47482
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47482&view=rev
Author:   lordhoto
Date:     2010-01-23 18:24:11 +0000 (Sat, 23 Jan 2010)

Log Message:
-----------
Cleanup. (And along with it add some additional asserts).

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/savegame.cpp

Modified: scummvm/trunk/engines/sci/engine/savegame.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/savegame.cpp	2010-01-23 18:11:21 UTC (rev 47481)
+++ scummvm/trunk/engines/sci/engine/savegame.cpp	2010-01-23 18:24:11 UTC (rev 47482)
@@ -682,18 +682,22 @@
 }
 
 static void load_script(EngineState *s, Script *scr) {
-	Resource *script, *heap = NULL;
-
 	scr->_buf = (byte *)malloc(scr->_bufSize);
 	assert(scr->_buf);
 
-	script = s->resMan->findResource(ResourceId(kResourceTypeScript, scr->_nr), 0);
-	if (getSciVersion() >= SCI_VERSION_1_1)
-		heap = s->resMan->findResource(ResourceId(kResourceTypeHeap, scr->_nr), 0);
+	Resource *script = s->resMan->findResource(ResourceId(kResourceTypeScript, scr->_nr), 0);
+	assert(script != 0);
 
+	assert(scr->_bufSize <= script->size);
 	memcpy(scr->_buf, script->data, script->size);
+
 	if (getSciVersion() >= SCI_VERSION_1_1) {
+		Resource *heap = s->resMan->findResource(ResourceId(kResourceTypeHeap, scr->_nr), 0);
+		assert(heap != 0);
+
 		scr->_heapStart = scr->_buf + scr->_scriptSize;
+
+		assert(scr->_bufSize - scr->_scriptSize <= heap->size);
 		memcpy(scr->_heapStart, heap->data, heap->size);
 	}
 }


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