[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/as_environment.cpp tests...,
Sandro Santilli <=