gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9476: Implement GETPROPERTY opcode.


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9476: Implement GETPROPERTY opcode.
Date: Sun, 17 Aug 2008 19:40:57 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9476
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sun 2008-08-17 19:40:57 +0800
message:
  Implement GETPROPERTY opcode.
modified:
  libcore/vm/Machine.cpp
  libcore/vm/Machine.h
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-08-17 11:09:36 +0000
+++ b/libcore/vm/Machine.cpp    2008-08-17 11:40:57 +0000
@@ -1576,24 +1576,8 @@
        case SWF::ABC_ACTION_GETPROPERTY:
        {
                asName a = pool_name(mStream->read_V32(), mPoolObject);
-               if (!a.isRuntime())
-               {
-                       //TODO: mStack.top(0) = mStack.top(0).getProperty(a, v);
-               }
-               else
-               {
-                       if (a.isRtns() || !(mStack.top(0).is_object()
-                               && mStack.top(1).to_object()->isDictionary()))
-                       {
-                               mStack.drop(completeName(a));
-                               //TODO: mStack.top(0) = 
mStack.top(0).getProperty(a);
-                       }
-                       else
-                       {
-                               //TODO: mStack.top(1) = 
mStack.top(1).getDictProperty(mStack.top(0));
-                               mStack.drop(1);
-                       }
-               }
+               //TODO: If multiname is runtime we need to also pop namespace 
and name values of the stack.
+               get_property(a.getGlobalName(),0);
                break;
        }
 /// 0x68 ABC_ACTION_INITPROPERTY

=== modified file 'libcore/vm/Machine.h'
--- a/libcore/vm/Machine.h      2008-08-17 09:40:06 +0000
+++ b/libcore/vm/Machine.h      2008-08-17 11:40:57 +0000
@@ -297,8 +297,8 @@
        }
        
        void get_property(string_table::key name,string_table::key ns){
-               boost::intrusive_ptr<gnash::as_object> object = 
mStack.pop().to_object();
-               mStack.push(object->getMember(name,ns));
+               as_object* object = mStack.pop().to_object().get();
+               push_stack(object->getMember(name,ns));
        }
        
        void get_property(Property* p){


reply via email to

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