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 <[EMAIL PROTECTED]> + * 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 <[EMAIL PROTECTED]> + * 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 Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit