gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/as_environment.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_environment.cpp
Date: Sun, 14 Oct 2007 20:36:43 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/14 20:36:43

Modified files:
        .              : ChangeLog 
        server         : as_environment.cpp 

Log message:
                * server/as_environment.cpp (get_variable_raw): reduce calls to
                  string_table::find.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4604&r2=1.4605
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.94&r2=1.95

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4604
retrieving revision 1.4605
diff -u -b -r1.4604 -r1.4605
--- ChangeLog   14 Oct 2007 19:59:29 -0000      1.4604
+++ ChangeLog   14 Oct 2007 20:36:42 -0000      1.4605
@@ -1,5 +1,7 @@
 2007-10-14 Sandro Santilli <address@hidden>
 
+       * server/as_environment.cpp (get_variable_raw): reduce calls to
+         string_table::find.
        * testsuite/misc-ming.all/Makefile.am: don't build and run 
PlaceObject2Test
          if MING_SUPPORTS_REPLACE_TAG is not defined, don't try to run
          get_frame_number_testrunner when not building it.

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -b -r1.94 -r1.95
--- server/as_environment.cpp   9 Oct 2007 15:36:57 -0000       1.94
+++ server/as_environment.cpp   14 Oct 2007 20:36:43 -0000      1.95
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.94 2007/10/09 15:36:57 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.95 2007/10/14 20:36:43 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -107,11 +107,18 @@
 
     as_value    val;
 
+    VM& vm = VM::get();
+    int swfVersion = vm.getSWFVersion();
+    string_table& st = vm.getStringTable();
+    string_table::key key = st.find(varname);
+
     // Check the with-stack.
-    for (size_t i = scopeStack.size(); i > 0; --i) {
+    for (size_t i = scopeStack.size(); i > 0; --i)
+    {
         // const_cast needed due to non-const as_object::get_member 
         as_object* obj = const_cast<as_object*>(scopeStack[i-1].get());
-        if (obj && obj->get_member(VM::get().getStringTable().find(varname), 
&val)) {
+        if (obj && obj->get_member(key, &val))
+        {
             // Found the var in with context.
             if ( retTarget ) *retTarget = obj;
             return val;
@@ -127,7 +134,7 @@
 
 
     // Check current target members.
-    if (m_target->get_member(VM::get().getStringTable().find(varname), &val)) {
+    if (m_target->get_member(key, &val)) {
         if ( retTarget ) *retTarget = m_target;
         return val;
     }
@@ -139,33 +146,16 @@
         return val;
     }
 
-#if 0 // NO special support for _root and _levelX, all should be done by 
target !
-      // see movieclip_destruction_test3, where _root becomes undefined if 
target is unloaded
-    // Check built-in constants.
-    if (varname == "_root") 
-    { 
-        if ( retTarget ) *retTarget = NULL; // correct ??
-        return as_value(m_target->get_root_movie());
-    }
-    else if (varname.compare(0, 6, "_level") == 0 && 
varname.find_first_not_of("0123456789", 7) == string::npos )
-    {
-       if ( retTarget ) *retTarget = NULL; // correct ??
-       unsigned int levelno = atoi(varname.c_str()+6);
-       return VM::get().getRoot().getLevel(levelno).get();
-    }
-#endif
-
-    VM& vm = VM::get();
     as_object* global = vm.getGlobal();
 
-    if ( vm.getSWFVersion() > 5 && varname == "_global" )
+    if ( swfVersion > 5 && varname == "_global" )
     {
         // The "_global" ref was added in SWF6
         if ( retTarget ) *retTarget = NULL; // correct ??
         return as_value(global);
     }
 
-    if (global->get_member(vm.getStringTable().find(varname), &val))
+    if (global->get_member(key, &val))
     {
         if ( retTarget ) *retTarget = global;
         return val;




reply via email to

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