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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Feb 7 18:56:57 CET 2010


Revision: 47977
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47977&view=rev
Author:   fingolfin
Date:     2010-02-07 17:56:57 +0000 (Sun, 07 Feb 2010)

Log Message:
-----------
SCI: Simplify yet another case of weird 'unsigned to signed' conversion

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

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2010-02-07 17:48:18 UTC (rev 47976)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-02-07 17:56:57 UTC (rev 47977)
@@ -108,7 +108,7 @@
 static reg_t &validate_property(Object *obj, int index) {
 	// A static dummy reg_t, which we return if obj or index turn out to be
 	// invalid. Note that we cannot just return NULL_REG, because client code
-	// may modify the value of the return reg_t.
+	// may modify the value of the returned reg_t.
 	static reg_t dummyReg = NULL_REG;
 
 	if (!obj) {
@@ -149,10 +149,7 @@
 		return 0;
 	}
 
-	if (reg.offset & 0x8000)
-		return (signed)(reg.offset) - 65536;
-	else
-		return reg.offset;
+	return (int16)reg.offset;
 }
 
 static bool validate_variable(reg_t *r, reg_t *stack_base, int type, int max, int index, int line) {
@@ -233,7 +230,7 @@
 
 #  define validate_stack_addr(s, sp) sp
 #  define validate_arithmetic(r) ((r).offset)
-#  define signed_validate_arithmetic(r) ((int) ((r).offset) & 0x8000 ? (signed) ((r).offset) - 65536 : ((r).offset))
+#  define signed_validate_arithmetic(r) ((int16)(r).offset)
 #  define validate_variable(r, sb, t, m, i, l)
 #  define validate_read_var(r, sb, t, m, i, l, dv) ((r)[i])
 #  define validate_write_var(r, sb, t, m, i, l, v, sm, k) ((r)[i] = (v))


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