[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