gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/avm2 r9565: Rename mAsValueScopeStack to m


From: Tom Stellard
Subject: [Gnash-commit] /srv/bzr/gnash/avm2 r9565: Rename mAsValueScopeStack to mScopeStack and change its type to SafeStack<boost::intrusive_ptr<as_object> > .
Date: Sat, 13 Sep 2008 18:30:51 +0800
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9565
committer: Tom Stellard <address@hidden>
branch nick: gnash_dev
timestamp: Sat 2008-09-13 18:30:51 +0800
message:
  Rename mAsValueScopeStack to mScopeStack and change its type to 
SafeStack<boost::intrusive_ptr<as_object> > .
modified:
  libcore/vm/Machine.cpp
  libcore/vm/Machine.h
=== modified file 'libcore/vm/Machine.cpp'
--- a/libcore/vm/Machine.cpp    2008-09-13 09:06:12 +0000
+++ b/libcore/vm/Machine.cpp    2008-09-13 10:30:51 +0000
@@ -720,25 +720,25 @@
        case SWF::ABC_ACTION_PUSHWITH:
        {
                // A scope object is just a regular object.
-               ENSURE_OBJECT(mStack.top(0));
-               as_object *a = mStack.top(0).to_object().get();
-
-               if (!mScopeStack.empty())
-                       a->set_prototype(mScopeStack.top(0).mScope);
-               else
-                       a->set_prototype(NULL);
-
-               if (opcode == SWF::ABC_ACTION_PUSHWITH &&
-                               mScopeStack.totalSize() == mScopeStack.size())
-               {
-                       mScopeStack.push(Scope(0, a));
-               }
-               else
-               {
-                       mScopeStack.push(Scope(mScopeStack.size(), a));
-               }
-               mCurrentScope = a;
-               mStack.drop(1);
+//             ENSURE_OBJECT(mStack.top(0));
+//             as_object *a = mStack.top(0).to_object().get();
+// 
+//             if (!mScopeStack.empty())
+//                     a->set_prototype(mScopeStack.top(0).mScope);
+//             else
+//                     a->set_prototype(NULL);
+// 
+//             if (opcode == SWF::ABC_ACTION_PUSHWITH &&
+//                             mScopeStack.totalSize() == mScopeStack.size())
+//             {
+//                     mScopeStack.push(Scope(0, a));
+//             }
+//             else
+//             {
+//                     mScopeStack.push(Scope(mScopeStack.size(), a));
+//             }
+//             mCurrentScope = a;
+//             mStack.drop(1);
                break;
        }
 /// 0x1D ABC_ACTION_POPSCOPE
@@ -1539,7 +1539,8 @@
 ///  global -- The global scope object
        case SWF::ABC_ACTION_GETGLOBALSCOPE:
        {
-               push_stack(mAsValueScopeStack.value(0));
+               //TODO: Use get_scope_stack here.
+               push_stack(as_value(mScopeStack.value(0).get()));
 //             print_stack();
                break;
        }
@@ -1569,7 +1570,7 @@
                //TODO: If multiname is runtime we need to also pop namespace 
and name values of the stack.
                as_value obj = pop_stack();
                as_value val;
-               obj.to_object().get()->get_member(a.getGlobalName(), &val); 
+               obj.to_object().get()->get_member(a.getGlobalName(), &val);
 
                push_stack(val);
 
@@ -2566,7 +2567,7 @@
        s.to_debug_string();
 //     mStack.setAllSizes(s.mStackTotalSize, s.mStackDepth);
 //     mScopeStack.setAllSizes(s.mScopeTotalSize, s.mScopeStackDepth);
-       mAsValueScopeStack.setAllSizes(s.mScopeTotalSize, s.mScopeStackDepth);
+       mScopeStack.setAllSizes(s.mScopeTotalSize, s.mScopeStackDepth);
        mStream = s.mStream;
        mRegisters = s.mRegisters;
 //     mExitWithReturn = s.mReturn;
@@ -2586,8 +2587,8 @@
        State &s = mStateStack.top(0);
        s.mStackDepth = mStack.getDownstop();
        s.mStackTotalSize = mStack.totalSize();
-       s.mScopeStackDepth = mAsValueScopeStack.getDownstop();
-       s.mScopeTotalSize = mAsValueScopeStack.totalSize();
+       s.mScopeStackDepth = mScopeStack.getDownstop();
+       s.mScopeTotalSize = mScopeStack.totalSize();
 //     s.mScopeStackDepth = mScopeStack.getDownstop();
 //     s.mScopeTotalSize = mScopeStack.totalSize();
        s.mStream = mStream;
@@ -2655,7 +2656,7 @@
        asClass* theClass = mPoolObject->locateClass(className);
        clearRegisters();
        mStack.clear();
-       mAsValueScopeStack.clear();
+       mScopeStack.clear();
        mRegisters[0] = as_value(global);
        executeCodeblock(theClass->getConstructor()->getBody());
 }
@@ -2673,14 +2674,14 @@
 as_value Machine::find_prop_strict(asName multiname){
        
        as_value val;
-       mAsValueScopeStack.push(as_value(mGlobalObject));
-       for(int i=0;i<mAsValueScopeStack.size();i++){
+       mScopeStack.push(mGlobalObject);
+       for(int i=0;i<mScopeStack.size();i++){
 
-               val = 
mAsValueScopeStack.top(i).to_object().get()->getMember(multiname.getGlobalName(),multiname.getNamespace()->getURI());
+               val = 
mScopeStack.top(i).get()->getMember(multiname.getGlobalName(),multiname.getNamespace()->getURI());
 
                if(!val.is_undefined()){
-                       push_stack(mAsValueScopeStack.top(i));
-                       mAsValueScopeStack.pop();
+                       push_stack(mScopeStack.top(i));
+                       mScopeStack.pop();
                        return val;
                }
        }
@@ -2693,7 +2694,7 @@
        std::string path = ns.size() == 0 ? name : ns + "." + name;
        val = env.get_variable(path,*getScopeStack(),&target);
        push_stack(as_value(target));
-       mAsValueScopeStack.pop();
+       mScopeStack.pop();
        return val;
 }
 
@@ -2746,8 +2747,8 @@
 
        std::stringstream ss;
        ss << "ScopeStack: ";
-       for(unsigned int i=0;i<mAsValueScopeStack.size();++i){
-               ss << mAsValueScopeStack.top(i).toDebugString();
+       for(unsigned int i=0;i<mScopeStack.size();++i){
+               ss << as_value(mScopeStack.top(i).get()).toDebugString();
        }
        LOG_DEBUG_AVM("%s", ss.str());
 }      
@@ -2770,8 +2771,8 @@
 
 as_environment::ScopeStack* Machine::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());
+       for(int i=0;i<mScopeStack.size();i++){
+               stack->push_back(mScopeStack.top(i));
        }
        return stack;
 }

=== modified file 'libcore/vm/Machine.h'
--- a/libcore/vm/Machine.h      2008-09-13 08:38:38 +0000
+++ b/libcore/vm/Machine.h      2008-09-13 10:30:51 +0000
@@ -293,24 +293,23 @@
 
        void push_scope_stack(as_value object){
                LOG_DEBUG_AVM("Pushing value onto the scope stack.");
-               mAsValueScopeStack.push(object);
-               LOG_DEBUG_AVM("There are now %u items on the scope 
stack.",mAsValueScopeStack.size());
+               mScopeStack.push(object.to_object());
+               LOG_DEBUG_AVM("There are now %u items on the scope 
stack.",mScopeStack.size());
        }
 
-       as_value pop_scope_stack(){
-               LOG_DEBUG_AVM("Poping value off the scope stack.  There will be 
%u items left.",mAsValueScopeStack.size()-1);
-               return mAsValueScopeStack.pop();
+       boost::intrusive_ptr<as_object> pop_scope_stack(){
+               LOG_DEBUG_AVM("Poping value off the scope stack.  There will be 
%u items left.",mScopeStack.size()-1);
+               return mScopeStack.pop();
        }
-       as_value get_scope_stack(boost::uint8_t depth){
+       boost::intrusive_ptr<as_object> get_scope_stack(boost::uint8_t depth){
                LOG_DEBUG_AVM("Geting value from scope stack %u from the 
bottom.",depth | 0x0);
-               return as_value(mAsValueScopeStack.value(depth));
+               return mScopeStack.value(depth);
        }
 
        SafeStack<as_value> mStack;
        SafeStack<State> mStateStack;
-       SafeStack<Scope> mScopeStack;
        std::vector<as_value> mRegisters;
-       SafeStack<as_value> mAsValueScopeStack;
+       SafeStack<boost::intrusive_ptr<as_object> > mScopeStack;
        CodeStream *mStream;
 
        ClassHierarchy *mCH;


reply via email to

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