gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash testsuite/actionscript.all/with.as server...


From: Sandro Santilli
Subject: [Gnash-commit] gnash testsuite/actionscript.all/with.as server...
Date: Mon, 15 Oct 2007 21:42:21 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/10/15 21:42:20

Modified files:
        testsuite/actionscript.all: with.as 
        server         : as_environment.cpp as_environment.h 
        .              : ChangeLog 

Log message:
                * server/as_environment.{cpp,h}: have 
find_object_{dot,slash}syntax
                  support a scope stack.
                * testsuite/actionscript.all/with.as: fix last failing test. 
Should be
                  easy to add more failing (hint: get variable in 
one-before-last member
                  of with stack scope ).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/with.as?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.97&r2=1.98
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4613&r2=1.4614

Patches:
Index: testsuite/actionscript.all/with.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/with.as,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- testsuite/actionscript.all/with.as  14 Oct 2007 21:38:11 -0000      1.28
+++ testsuite/actionscript.all/with.as  15 Oct 2007 21:42:20 -0000      1.29
@@ -21,7 +21,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: with.as,v 1.28 2007/10/14 21:38:11 strk Exp $";
+rcsid="$Id: with.as,v 1.29 2007/10/15 21:42:20 strk Exp $";
 
 #include "check.as"
 
@@ -382,7 +382,7 @@
                        getvariable  
                        setvariable
                };
-               xcheck_equals(checkpoint, "o.i.j");
+               check_equals(checkpoint, "o.i.j");
 
                //// SETTING VARIABLES
 

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -b -r1.97 -r1.98
--- server/as_environment.cpp   15 Oct 2007 09:40:07 -0000      1.97
+++ server/as_environment.cpp   15 Oct 2007 21:42:20 -0000      1.98
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.97 2007/10/15 09:40:07 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.98 2007/10/15 21:42:20 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -66,7 +66,7 @@
         // TODO: let find_target return generic as_objects, or use 'with' 
stack,
         //       see player2.swf or bug #18758 (strip.swf)
         // @@ TODO: should we use scopeStack here too ?
-        as_object* target = is_slash_based ? find_object_slashsyntax(path) : 
find_object_dotsyntax(path); 
+        as_object* target = is_slash_based ? find_object_slashsyntax(path, 
&scopeStack) : find_object_dotsyntax(path, &scopeStack);
 
         if (target)
         {
@@ -262,7 +262,7 @@
     if (parse_path(varname, path, var, &is_slash_based)) {
        //log_msg(_("Variable '%s' parsed into path='%s', var='%s'"), 
varname.c_str(), path.c_str(), var.c_str());
        //target = find_target(path);
-        target = is_slash_based ? find_object_slashsyntax(path) : 
find_object_dotsyntax(path); 
+        target = is_slash_based ? find_object_slashsyntax(path, &scopeStack) : 
find_object_dotsyntax(path, &scopeStack); 
        if (target)
        {
            target->set_member(VM::get().getStringTable().find(var), val);
@@ -638,7 +638,7 @@
 }
 
 as_object*
-as_environment::find_object_dotsyntax(const std::string& path) const
+as_environment::find_object_dotsyntax(const std::string& path, const 
ScopeStack* scopeStack) const
 {
 #ifdef DEBUG_TARGET_FINDING 
        log_msg(_("find_object_dotsyntax(%s) called"), path.c_str());
@@ -658,6 +658,7 @@
     //assert(path.length() > 0);
     
     as_object* env = m_target;
+    if ( scopeStack && ! scopeStack->empty() ) env = scopeStack->back().get();
     assert(env);
     
     const char*        p = path.c_str();
@@ -760,7 +761,7 @@
 }
 
 as_object*
-as_environment::find_object_slashsyntax(const std::string& path) const
+as_environment::find_object_slashsyntax(const std::string& path, const 
ScopeStack* scopeStack) const
 {
 #ifdef DEBUG_TARGET_FINDING 
        log_msg(_("find_object_slashsyntax(%s) called"), path.c_str());
@@ -775,6 +776,7 @@
     }
     
     as_object* env = m_target;
+    if ( scopeStack && ! scopeStack->empty() ) env = scopeStack->back().get();
     assert(env);
     
     const char*        p = path.c_str();

Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- server/as_environment.h     9 Oct 2007 16:34:54 -0000       1.58
+++ server/as_environment.h     15 Oct 2007 21:42:20 -0000      1.59
@@ -640,7 +640,7 @@
        ///
        /// Return NULL if path doesn't point to an object.
        ///
-       as_object* find_object_slashsyntax(const std::string& path) const;
+       as_object* find_object_slashsyntax(const std::string& path, const 
ScopeStack* scopeStack=NULL) const;
 
        /// Find an object referenced by the given path (dot syntax).
        //
@@ -648,7 +648,7 @@
        ///
        /// Return NULL if path doesn't point to an object.
        ///
-       as_object* find_object_dotsyntax(const std::string& path) const;
+       as_object* find_object_dotsyntax(const std::string& path, const 
ScopeStack* scopeStack=NULL) const;
 
 };
 

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4613
retrieving revision 1.4614
diff -u -b -r1.4613 -r1.4614
--- ChangeLog   15 Oct 2007 12:58:59 -0000      1.4613
+++ ChangeLog   15 Oct 2007 21:42:20 -0000      1.4614
@@ -1,3 +1,11 @@
+2007-10-15 Sandro Santilli <address@hidden>
+
+       * server/as_environment.{cpp,h}: have find_object_{dot,slash}syntax
+         support a scope stack.
+       * testsuite/actionscript.all/with.as: fix last failing test. Should be
+         easy to add more failing (hint: get variable in one-before-last member
+         of with stack scope).
+
 2007-10-15 Udo Giacomozzi <address@hidden>
 
        * backend/render_handler_agg.cpp, backend/render_handler_agg.h, 
gui/fb.cpp,




reply via email to

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