gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9533: COERCE opcode: Coerce null val


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9533: COERCE opcode: Coerce null values.
Date: Sat, 30 Aug 2008 18:41:42 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9533
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sat 2008-08-30 18:41:42 +0800
message:
  COERCE opcode: Coerce null values.
modified:
  libcore/vm/Machine.cpp
  libcore/vm/Machine.h
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-08-28 14:05:32 +0000
+++ b/libcore/vm/Machine.cpp    2008-08-30 10:41:42 +0000
@@ -1790,8 +1790,15 @@
        {
                asName a = pool_name(mStream->read_V32(), mPoolObject);
                as_value value = pop_stack();
+
                //TODO: Actually coerce the value.
-               push_stack(value);
+               if(value.is_null()){
+                       as_value new_type = get_property_value(a);
+                       push_stack(new_type);
+               }
+               else{
+                       push_stack(value);
+               }
                break;
        }
 /// 0x82 ABC_ACTION_COERCE_A

=== modified file 'libcore/vm/Machine.h'
--- a/libcore/vm/Machine.h      2008-08-27 05:41:23 +0000
+++ b/libcore/vm/Machine.h      2008-08-30 10:41:42 +0000
@@ -317,6 +317,12 @@
                mStack.push(value);
        }
 
+       as_value get_property_value(asName multiname){
+               as_environment env;
+               as_value val = 
env.get_variable(mPoolObject->mStringPool[multiname.getNamespace()->getAbcURI()],*getScopeStack(),NULL);
+               return val;
+       }
+
        void print_stack(){
                
                std::stringstream ss;


reply via email to

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