[Top][All Lists]
[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;
- [Gnash-commit] gnash ChangeLog server/as_environment.cpp,
Sandro Santilli <=