gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/avm2 r9613: Clean up IFLT opcode.


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9613: Clean up IFLT opcode.
Date: Sun, 12 Oct 2008 02:51:31 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9613
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sun 2008-10-12 02:51:31 +0800
message:
  Clean up IFLT opcode.
modified:
  libcore/vm/Machine.cpp
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-10-11 18:12:19 +0000
+++ b/libcore/vm/Machine.cpp    2008-10-11 18:51:31 +0000
@@ -580,10 +580,18 @@
 /// Do: If a < b move by jump in stream, as ABC_ACTION_JUMP does.
        case SWF::ABC_ACTION_IFLT:
        {
+               as_value b = pop_stack();
+               as_value a = pop_stack();
+               boost::int32_t bytes = mStream->read_S24();
                bool truth;
-               ABSTRACT_COMPARE(truth, mStack.top(1), mStack.top(0), false);
-               mStack.drop(2);
-               JUMPIF(truth); // truth is: a < b
+               ABSTRACT_COMPARE(truth, a, b, false);
+               if(truth){
+                       LOG_DEBUG_AVM("Jumping... %d bytes.",bytes);
+                       mStream->seekBy(bytes);
+               }
+               else{
+                       LOG_DEBUG_AVM("Would have jumped %d bytes",bytes);
+               }
                break;
        }
 /// 0x16 ABC_ACTION_IFLE


reply via email to

[Prev in Thread] Current Thread [Next in Thread]