[Scummvm-cvs-logs] SF.net SVN: scummvm:[47587] scummvm/trunk/engines/sci/engine/vm.cpp
waltervn at users.sourceforge.net
waltervn at users.sourceforge.net
Wed Jan 27 04:37:56 CET 2010
Revision: 47587
http://scummvm.svn.sourceforge.net/scummvm/?rev=47587&view=rev
Author: waltervn
Date: 2010-01-27 03:37:56 +0000 (Wed, 27 Jan 2010)
Log Message:
-----------
SCI: Restore pointer checks removed in r47585.
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-01-27 02:22:45 UTC (rev 47586)
+++ scummvm/trunk/engines/sci/engine/vm.cpp 2010-01-27 03:37:56 UTC (rev 47587)
@@ -854,7 +854,7 @@
// FIXME: Add a warning when pointers in different segments are compared
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset > s->r_acc.offset);
} else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() > (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) > (int16)/*acc*/);
break;
case 0x10: // ge?
@@ -863,7 +863,7 @@
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset >= s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() >= (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) >= (int16)/*acc*/);
break;
case 0x11: // lt?
@@ -872,7 +872,7 @@
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset < s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() < (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) < (int16)/*acc*/);
break;
case 0x12: // le?
@@ -881,7 +881,7 @@
if (r_temp.segment && s->r_acc.segment)
s->r_acc = make_reg(0, (r_temp.segment == s->r_acc.segment) && r_temp.offset <= s->r_acc.offset);
else
- s->r_acc = ACC_ARITHMETIC_L(r_temp.toSint16() <= (int16)/*acc*/);
+ s->r_acc = ACC_ARITHMETIC_L((int16)validate_arithmetic(r_temp) <= (int16)/*acc*/);
break;
case 0x13: // ugt?
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