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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Mon Jun 28 16:46:29 CEST 2010


Revision: 50446
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50446&view=rev
Author:   m_kiewitz
Date:     2010-06-28 14:46:28 +0000 (Mon, 28 Jun 2010)

Log Message:
-----------
SCI: fixing valgrind issue in Script::initialiseClasses thx to wjp for valgrind testing

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-06-28 14:21:56 UTC (rev 50445)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2010-06-28 14:46:28 UTC (rev 50446)
@@ -410,12 +410,14 @@
 	if (!seeker)
 		return;
 
+	uint16 marker;
+	bool isClass;
+	uint16 classpos = seeker - _buf;
+	int16 species = 0;
+
 	while (true) {
 		// In SCI0-SCI1, this is the segment type. In SCI11, it's a marker (0x1234)
-		uint16 marker = READ_SCI11ENDIAN_UINT16(seeker);
-		bool isClass;
-		uint16 classpos = seeker - _buf;
-		int16 species;
+		marker = READ_SCI11ENDIAN_UINT16(seeker);
 
 		if (!marker)
 			break;
@@ -425,7 +427,8 @@
 			species = READ_SCI11ENDIAN_UINT16(seeker + 10);
 		} else {
 			isClass = (marker == SCI_OBJ_CLASS);
-			species = READ_SCI11ENDIAN_UINT16(seeker + 12);
+			if (isClass)
+				species = READ_SCI11ENDIAN_UINT16(seeker + 12);
 			classpos += 12;
 		}
 


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