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 tests...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_environment.cpp tests...
Date: Thu, 22 Nov 2007 21:45:41 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/11/22 21:45:41

Modified files:
        .              : ChangeLog 
        server         : as_environment.cpp 
        testsuite/actionscript.all: getvariable.as 
        testsuite/swfdec: PASSING 

Log message:
        Try evaluating variables paths containing slashes but no colon as 
sprites
        before falling back to property lookup.
        This fixes important tests in swfdec testsuite and 
actionscript.all/getvariable.as

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4928&r2=1.4929
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.113&r2=1.114
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/actionscript.all/getvariable.as?cvsroot=gnash&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/swfdec/PASSING?cvsroot=gnash&r1=1.65&r2=1.66

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4928
retrieving revision 1.4929
diff -u -b -r1.4928 -r1.4929
--- ChangeLog   22 Nov 2007 20:43:46 -0000      1.4928
+++ ChangeLog   22 Nov 2007 21:45:40 -0000      1.4929
@@ -1,3 +1,13 @@
+2007-11-22 Sandro Santilli <address@hidden>
+
+       * server/as_environment.cpp (get_variable): variables paths containing
+         slashes but no colon will be attempted to be evaluated as sprites
+         before falling back to property lookup.
+       * testsuite/actionscript.all/getvariable.as: successes in all newly
+         added tests.
+       * testsuite/swfdec/PASSING: getvariable-slashpath and enumerate
+         tests succeed.
+
 2007-11-22 Markus Gothe <address@hidden>
 
        * macros/archflag.m4: Updated to the latest version.

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -b -r1.113 -r1.114
--- server/as_environment.cpp   22 Nov 2007 19:40:24 -0000      1.113
+++ server/as_environment.cpp   22 Nov 2007 21:45:40 -0000      1.114
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: as_environment.cpp,v 1.113 2007/11/22 19:40:24 strk Exp $ */
+/* $Id: as_environment.cpp,v 1.114 2007/11/22 21:45:40 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -81,23 +81,31 @@
             IF_VERBOSE_ASCODING_ERRORS(
             log_aserror(_("find_object(\"%s\") [ varname = '%s' - current 
target = '%s' ] failed"),
                 path.c_str(), varname.c_str(),
-                m_target->get_text_value().c_str()
-            );
-            );
-
+                m_target->get_text_value().c_str());
             as_value tmp = get_variable_raw(path, scopeStack, retTarget);
             if ( ! tmp.is_undefined() )
             {
-                IF_VERBOSE_ASCODING_ERRORS(
                 log_aserror(_("...but get_variable_raw(%s, <scopeStack>) 
succeeded (%s)!"),
                     path.c_str(), tmp.to_debug_string().c_str());
-                )
             }
-                       return as_value();
+            );
+            return as_value(); // TODO: should we check get_variable_raw ?
         }
     }
     else
     {
+       // TODO: have this checked by parse_path as an optimization 
+       if ( varname.find_first_of('/') != string::npos )
+       {
+               // Consider it all a path ...
+               as_object* target = find_object(varname, &scopeStack); 
+               if ( target ) 
+               {
+                       // ... but only if it resolves to a sprite
+                       sprite_instance* m = target->to_movie();
+                       if ( m ) return as_value(m);
+               }
+       }
         return get_variable_raw(varname, scopeStack, retTarget);
     }
 }

Index: testsuite/actionscript.all/getvariable.as
===================================================================
RCS file: /sources/gnash/gnash/testsuite/actionscript.all/getvariable.as,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- testsuite/actionscript.all/getvariable.as   22 Nov 2007 20:49:38 -0000      
1.20
+++ testsuite/actionscript.all/getvariable.as   22 Nov 2007 21:45:41 -0000      
1.21
@@ -19,7 +19,7 @@
 // compile this test case with Ming makeswf, and then
 // execute it like this gnash -1 -r 0 -v out.swf
 
-rcsid="$Id: getvariable.as,v 1.20 2007/11/22 20:49:38 strk Exp $";
+rcsid="$Id: getvariable.as,v 1.21 2007/11/22 21:45:41 strk Exp $";
 
 #include "check.as"
 
@@ -129,8 +129,8 @@
         setvariable
 };
 #if OUTPUT_VERSION > 5
- xcheck_equals(typeof(checkpoint), 'movieclip');
- xcheck_equals(checkpoint, _level0.mc.mc);
+ check_equals(typeof(checkpoint), 'movieclip');
+ check_equals(checkpoint, _level0.mc.mc);
 #else
  check_equals(typeof(checkpoint), 'undefined');
  check_equals(checkpoint, _level0.mc.mc);
@@ -147,8 +147,8 @@
         setvariable
 };
 #if OUTPUT_VERSION > 5
- xcheck_equals(typeof(checkpoint), 'movieclip');
- xcheck_equals(checkpoint, _level0.mc.mc);
+ check_equals(typeof(checkpoint), 'movieclip');
+ check_equals(checkpoint, _level0.mc.mc);
 #else
  check_equals(typeof(checkpoint), 'undefined');
  check_equals(checkpoint, _level0.mc.mc);

Index: testsuite/swfdec/PASSING
===================================================================
RCS file: /sources/gnash/gnash/testsuite/swfdec/PASSING,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- testsuite/swfdec/PASSING    22 Nov 2007 11:09:55 -0000      1.65
+++ testsuite/swfdec/PASSING    22 Nov 2007 21:45:41 -0000      1.66
@@ -146,6 +146,9 @@
 empty-function-8.swf:8590a81f543ca2f7a1bc6fb2105f5672
 empty-stack.swf:47ef885ae85e56e2ba8caae6eed46704
 enumerate-5.swf:62ec57ff724247d42c254cfadca06f2d
+enumerate-6.swf:85f81c4443f6137238d4fa5561579812
+enumerate-7.swf:35e50f33fd5b00821d709ce06dc3bcad
+enumerate-8.swf:6c30f609bf36664ce15a7a63ea2857cf
 event-order.swf:6cb896771a691dc394226c3f542b1bec
 export-case-5.swf:8b37704408e27ffb8b51c63179c7702c
 export-case-6.swf:7c3106de02ed0a94ed0bc816bf526c02
@@ -197,6 +200,9 @@
 getvariable-dotdot-8.swf:2861d34a85b5de09f41af572e0b1a6a5
 getvariable-length-5.swf:2d07e2afdf45356cf2df5c1176ed29ad
 getvariable-slashpath-5.swf:3067a6cdf4991af85520d7eb3bb51178
+getvariable-slashpath-6.swf:17d6ee6ddb15296e887944d7c7c45432
+getvariable-slashpath-7.swf:499213312255eba3746c4ff6b7b4782d
+getvariable-slashpath-8.swf:19df043ceda9c1db9efbd185bb5ae2cb
 getvariable-special-5.swf:4baac55533a4cc67a3419dafb97cc888
 glow-filter-properties-5.swf:b3d05908aaa98c7115ec1727d695a16a
 goto1.swf:6f35a27cb3aee7f282eccb3b16290c70
@@ -526,8 +532,8 @@
 tointeger-various-6.swf:71257f69e5f3feb6ae18ebf26ad2eb22
 tointeger-various-7.swf:6251bc39b6449a82c89b6c821f9af0ff
 totalframes.swf:cdc0d5e2017d293438ef80fa136c44e8
-transform.swf:5c8533f9168ca3e92d000ce1693ed5ef
 transform-properties-5.swf:b0386824584340e1d0a80f986ce779b9
+transform.swf:5c8533f9168ca3e92d000ce1693ed5ef
 try-throw-in-finally-6.swf:1c12d4b0f949704bd0794d73f0385007
 try-throw-in-finally-7.swf:0342b214948d6bec886863f6f66cab33
 try-throw-in-finally-8.swf:f5b7ae88f4383ebcdb8313674a2d85cb




reply via email to

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