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

waltervn at users.sourceforge.net waltervn at users.sourceforge.net
Sat Apr 24 16:10:53 CEST 2010


Revision: 48783
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48783&view=rev
Author:   waltervn
Date:     2010-04-24 14:10:52 +0000 (Sat, 24 Apr 2010)

Log Message:
-----------
SCI: Fix regression in locals init for re-used segments

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

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2010-04-24 12:53:14 UTC (rev 48782)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2010-04-24 14:10:52 UTC (rev 48783)
@@ -167,7 +167,11 @@
 
 	scr->_localsOffset = -count * 2; // Make sure it's invalid
 
-	allocLocalsSegment(scr, count);
+	LocalVariables *locals = allocLocalsSegment(scr, count);
+	if (locals) {
+		for (int i = 0; i < count; i++)
+			locals->_locals[i] = NULL_REG;
+	}
 }
 
 void SegManager::scriptInitialiseLocals(reg_t location) {
@@ -195,7 +199,7 @@
 		byte *base = (byte *)(scr->_buf + location.offset);
 
 		for (i = 0; i < count; i++)
-			locals->_locals[i].offset = READ_LE_UINT16(base + i * 2);
+			locals->_locals[i] = make_reg(0, READ_LE_UINT16(base + i * 2));
 	}
 }
 


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