gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9528: If we can't find a property in


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9528: If we can't find a property in the scope stack, look again using as_environment::find_object.
Date: Wed, 27 Aug 2008 13:41:23 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9528
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Wed 2008-08-27 13:41:23 +0800
message:
  If we can't find a property in the scope stack, look again using 
as_environment::find_object.
modified:
  libcore/vm/Machine.h
=== modified file 'libcore/vm/Machine.h'
--- a/libcore/vm/Machine.h      2008-08-22 16:14:15 +0000
+++ b/libcore/vm/Machine.h      2008-08-27 05:41:23 +0000
@@ -297,7 +297,9 @@
                }
                print_scope_stack();
                LOG_DEBUG_AVM("Cannot find property in scope stack.");
-               push_stack(as_value());
+               as_environment env;
+               as_object* obj = 
env.find_object(mPoolObject->mStringPool[multiname.getNamespace()->getAbcURI()],getScopeStack());
+               push_stack(as_value(obj));
        }
        
        void get_property(string_table::key name,string_table::key ns){
@@ -355,6 +357,14 @@
                mRegisters.resize(16);
        }
 
+       as_environment::ScopeStack* getScopeStack(){
+               as_environment::ScopeStack *stack = new 
as_environment::ScopeStack();
+               for(int i=0;i<mAsValueScopeStack.size();i++){
+                       stack->push_back(mAsValueScopeStack.top(i).to_object());
+               }
+               return stack;
+       }
+
        void executeCodeblock(CodeStream* stream);
 
        SafeStack<as_value> mStack;


reply via email to

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