[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnash-commit] gnash ChangeLog server/as_environment.cpp serve...
From: |
zou lunkai |
Subject: |
Re: [Gnash-commit] gnash ChangeLog server/as_environment.cpp serve... |
Date: |
Sun, 30 Sep 2007 10:13:33 +0800 |
Hi strk,
> +#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
...
> + if ( isUnloaded() ) return false; // see
> movieclip_destruction_test3.sc
Please review see movieclip_destruction_test3 again. I cann't see how
the above statement being tested. I added a few test against that
point. Results show that '_root' is always defined, even within an
unloaded/shifted sprites.
Please update those comments(and related code if necessary), I was
confused by that.
BTW, I'll leave for about a week. but still reachable by email.
Just metion that scope chain was not
intensively tested, so no surprise our testsuite might not catch some
related changes. I'll break it when I come back:)
--zou
On 9/27/07, Sandro Santilli <address@hidden> wrote:
> CVSROOT: /sources/gnash
> Module name: gnash
> Changes by: Sandro Santilli <strk> 07/09/26 20:52:03
>
> Modified files:
> . : ChangeLog
> server : as_environment.cpp sprite_instance.cpp
> server/vm : ActionExec.cpp
>
> Log message:
> * server/as_environment.cpp (get_variable_raw): don't handle
> _root and
> _levelX in any special way, they are just sprite members !
> * server/sprite_instance.cpp (get_member): _root doesn't
> exist if
> we're unloaded.
> * server/vm/ActionExec.cpp (call operator): drop opcode-level
> unloaded guard. Fixes bugs #21069 (feed.swf) and #20996
> (curveball.swf) w/out reopening #20974 (sonic.swf).
> Changes in as_environment.cpp and sprite_instance.cpp above
> do the rest for misc-ming and misc-swfc tests..
>
> CVSWeb URLs:
> http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4429&r2=1.4430
> http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.91&r2=1.92
> http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.359&r2=1.360
> http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.cpp?cvsroot=gnash&r1=1.49&r2=1.50
>
> Patches:
> Index: ChangeLog
> ===================================================================
> RCS file: /sources/gnash/gnash/ChangeLog,v
> retrieving revision 1.4429
> retrieving revision 1.4430
> diff -u -b -r1.4429 -r1.4430
> --- ChangeLog 26 Sep 2007 19:46:28 -0000 1.4429
> +++ ChangeLog 26 Sep 2007 20:52:02 -0000 1.4430
> @@ -1,5 +1,17 @@
> 2007-09-26 Sandro Santilli <address@hidden>
>
> + * server/as_environment.cpp (get_variable_raw): don't handle _root and
> + _levelX in any special way, they are just sprite members !
> + * server/sprite_instance.cpp (get_member): _root doesn't exist if
> + we're unloaded.
> + * server/vm/ActionExec.cpp (call operator): drop opcode-level
> + unloaded guard. Fixes bugs #21069 (feed.swf) and #20996
> + (curveball.swf) w/out reopening #20974 (sonic.swf).
> + Changes in as_environment.cpp and sprite_instance.cpp above
> + do the rest for misc-ming and misc-swfc tests..
> +
> +2007-09-26 Sandro Santilli <address@hidden>
> +
> * server/parser/morph2_character_def.cpp (read):
> Don't print malformed swf errors if number of paths in defining
> shapes don't match: only edges matter.
>
> Index: server/as_environment.cpp
> ===================================================================
> RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
> retrieving revision 1.91
> retrieving revision 1.92
> diff -u -b -r1.91 -r1.92
> --- server/as_environment.cpp 26 Sep 2007 12:54:18 -0000 1.91
> +++ server/as_environment.cpp 26 Sep 2007 20:52:02 -0000 1.92
> @@ -17,7 +17,7 @@
> // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> //
>
> -/* $Id: as_environment.cpp,v 1.91 2007/09/26 12:54:18 strk Exp $ */
> +/* $Id: as_environment.cpp,v 1.92 2007/09/26 20:52:02 strk Exp $ */
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> @@ -139,6 +139,8 @@
> 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")
> {
> @@ -151,6 +153,7 @@
> 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();
>
> Index: server/sprite_instance.cpp
> ===================================================================
> RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
> retrieving revision 1.359
> retrieving revision 1.360
> diff -u -b -r1.359 -r1.360
> --- server/sprite_instance.cpp 25 Sep 2007 14:57:05 -0000 1.359
> +++ server/sprite_instance.cpp 26 Sep 2007 20:52:02 -0000 1.360
> @@ -1741,6 +1741,8 @@
> //
> if (name == "_root" )
> {
> + if ( isUnloaded() ) return false; // see
> movieclip_destruction_test3.sc
> +
> // TODO: handle lockroot
> val->set_as_object( VM::get().getRoot().get_root_movie() );
> return true;
>
> Index: server/vm/ActionExec.cpp
> ===================================================================
> RCS file: /sources/gnash/gnash/server/vm/ActionExec.cpp,v
> retrieving revision 1.49
> retrieving revision 1.50
> diff -u -b -r1.49 -r1.50
> --- server/vm/ActionExec.cpp 26 Sep 2007 11:30:43 -0000 1.49
> +++ server/vm/ActionExec.cpp 26 Sep 2007 20:52:02 -0000 1.50
> @@ -17,7 +17,7 @@
> // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> //
>
> -/* $Id: ActionExec.cpp,v 1.49 2007/09/26 11:30:43 strk Exp $ */
> +/* $Id: ActionExec.cpp,v 1.50 2007/09/26 20:52:02 strk Exp $ */
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> @@ -284,11 +284,13 @@
> continue; // Walk up the try chain if necessary.
> } // end of try checking.
>
> +#if 0 // See bugs: #20974, #21069, #20996.
> if ( _abortOnUnload && _original_target->isUnloaded() )
> {
> log_debug("Target of action_buffer unloaded during
> execution, discarding %d remaining opcodes", stop_pc-pc);
> break;
> }
> +#endif
>
> // Cleanup any expired "with" blocks.
> while ( ! with_stack.empty() && pc >= with_stack.back().end_pc()
> ) {
>
>
> _______________________________________________
> Gnash-commit mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnash-commit
>