gnash-commit
[Top][All Lists]
Advanced

[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
>




reply via email to

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