CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/10/25 07:52:10
Modified files: . : ChangeLog server : as_environment.cpp server/vm : ASHandlers.cpp Log message: * server/as_environment.cpp (find_target): always use current, not original target. * server/vm/ASHandlers.cpp (CommonSetTarget): reset target as first thing, so that find_target won't use previously current target to resolve relative paths. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4701&r2=1.4702 http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.101&r2=1.102 http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.143&r2=1.144 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4701 retrieving revision 1.4702 diff -u -b -r1.4701 -r1.4702 --- ChangeLog 25 Oct 2007 07:22:02 -0000 1.4701 +++ ChangeLog 25 Oct 2007 07:52:09 -0000 1.4702 @@ -1,5 +1,13 @@ 2007-10-24 Sandro Santilli <[EMAIL PROTECTED]> + * server/as_environment.cpp (find_target): always use current, not + original target. + * server/vm/ASHandlers.cpp (CommonSetTarget): reset target as first + thing, so that find_target won't use previously current target + to resolve relative paths. + +2007-10-24 Sandro Santilli <[EMAIL PROTECTED]> + * testsuite/actionscript.all/with.as: more setTarget tests (failing) 2007-10-24 Sandro Santilli <[EMAIL PROTECTED]> Index: server/as_environment.cpp =================================================================== RCS file: /sources/gnash/gnash/server/as_environment.cpp,v retrieving revision 1.101 retrieving revision 1.102 diff -u -b -r1.101 -r1.102 --- server/as_environment.cpp 24 Oct 2007 23:54:22 -0000 1.101 +++ server/as_environment.cpp 25 Oct 2007 07:52:10 -0000 1.102 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: as_environment.cpp,v 1.101 2007/10/24 23:54:22 strk Exp $ */ +/* $Id: as_environment.cpp,v 1.102 2007/10/25 07:52:10 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -567,8 +567,7 @@ return m_target; // or should we return the *original* path ? } - // see swfdec's settarget-relative-*.swf - character* env = _original_target; // m_target; + character* env = m_target; assert(env); const char* p = path.c_str(); Index: server/vm/ASHandlers.cpp =================================================================== RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v retrieving revision 1.143 retrieving revision 1.144 diff -u -b -r1.143 -r1.144 --- server/vm/ASHandlers.cpp 24 Oct 2007 23:40:37 -0000 1.143 +++ server/vm/ASHandlers.cpp 25 Oct 2007 07:52:10 -0000 1.144 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: ASHandlers.cpp,v 1.143 2007/10/24 23:40:37 strk Exp $ */ +/* $Id: ASHandlers.cpp,v 1.144 2007/10/25 07:52:10 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -679,7 +679,7 @@ // Change the movie we're working on. string target_name ( code.read_string(pc+3) ); - CommonSetTarget(env, target_name); + CommonSetTarget(thread, target_name); } void @@ -1023,7 +1023,7 @@ // see tests in opcode_guard_test2.sc const string& target_name = env.top(0).to_string(&env); - CommonSetTarget(env, target_name); + CommonSetTarget(thread, target_name); env.drop(1); // pop the target sprite off the stack } @@ -2149,18 +2149,19 @@ // http://sswf.sourceforge.net/SWFalexref.html#action_set_target // http://sswf.sourceforge.net/SWFalexref.html#action_get_dynamic void -SWFHandlers::CommonSetTarget(as_environment& env, const string& target_name) +SWFHandlers::CommonSetTarget(ActionExec& thread, const string& target_name) { + as_environment& env = thread.env; + + // see swfdec's settarget-relative-*.swf + env.reset_target(); + character *new_target; // if the string is blank, we reset the target to its original value - if ( target_name.empty() ) - { - env.reset_target(); - return; - } + if ( target_name.empty() ) return; - new_target = env.find_target(target_name); + new_target = env.find_target(target_name); // TODO: pass thread.getScopeStack() if (new_target == NULL) { IF_VERBOSE_ASCODING_ERRORS ( @@ -2169,7 +2170,7 @@ " Resetting to original target..."), target_name.c_str()); ); - env.reset_target(); + return; } else { _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit