CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 08/01/09 17:52:17
Modified files: . : ChangeLog server : movie_root.cpp server/vm : ASHandlers.cpp Log message: Don't convert target of loadMovie target sprites to lowercase !! CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5356&r2=1.5357 http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.145&r2=1.146 http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.175&r2=1.176 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.5356 retrieving revision 1.5357 diff -u -b -r1.5356 -r1.5357 --- ChangeLog 9 Jan 2008 17:09:16 -0000 1.5356 +++ ChangeLog 9 Jan 2008 17:52:16 -0000 1.5357 @@ -1,5 +1,16 @@ 2008-01-09 Sandro Santilli <[EMAIL PROTECTED]> + * server/movie_root.cpp (findCharacterByTarget): start from + an arbitrary level for resolution, not necessarely the + original root movie... + * server/vm/ASHandlers.cpp (CommonGetUrl): + Don't convert target movie id to lowercase ! + Provide a compile-time macro to determine whether or not + movie loads are postponed, being a pretty new thing... + (defaults to do postpone). + +2008-01-09 Sandro Santilli <[EMAIL PROTECTED]> + * testsuite/misc-ming.all/: loadMovieTest.c, loadMovieTestRunner.cpp: Initial work to turn loadMovieTest.swf into a self-described/contained testcase. Index: server/movie_root.cpp =================================================================== RCS file: /sources/gnash/gnash/server/movie_root.cpp,v retrieving revision 1.145 retrieving revision 1.146 diff -u -b -r1.145 -r1.146 --- server/movie_root.cpp 9 Jan 2008 14:53:17 -0000 1.145 +++ server/movie_root.cpp 9 Jan 2008 17:52:17 -0000 1.146 @@ -43,6 +43,8 @@ #include <boost/bind.hpp> //#define GNASH_DEBUG 1 +//#define GNASH_DEBUG_LOADMOVIE_REQUESTS_PROCESSING 1 +//#define GNASH_DEBUG_TIMERS_EXPIRATION 1 using namespace std; @@ -1427,7 +1429,9 @@ void movie_root::executeTimers() { +#ifdef GNASH_DEBUG_TIMERS_EXPIRATION log_debug("Checking %d timers for expiration", _intervalTimers.size()); +#endif for (TimerMap::iterator it=_intervalTimers.begin(), itEnd=_intervalTimers.end(); it != itEnd; ) { @@ -1682,7 +1686,12 @@ VM& vm = VM::get(); string_table& st = vm.getStringTable(); - as_object* o = getRootMovie(); // FIXME: could have been dropped ! use _movies.front() instead + + // NOTE: getRootMovie() would be problematic in case the original + // root movie is replaced by a load to _level0... + // (but I guess we'd also drop loadMovie requests in that + // case... just not tested) + as_object* o = _movies.begin()->second.get(); string::size_type from = 0; while ( string::size_type to=tgtstr.find_first_of('.', from) ) @@ -1690,10 +1699,10 @@ string part(tgtstr, from, to-from); o = o->get_path_element(st.find(part)); if ( ! o ) { -//#ifdef GNASH_DEBUG_TARGET_RESOLUTION - log_debug("Evaluating target path for soft ref rebinding: element '%s' of path '%s' not found", +#ifdef GNASH_DEBUG_TARGET_RESOLUTION + log_debug("Evaluating character target path: element '%s' of path '%s' not found", part.c_str(), tgtstr.c_str()); -//#endif +#endif return NULL; } if ( to == string::npos ) break; @@ -1749,7 +1758,9 @@ void movie_root::processLoadMovieRequests() { +#ifdef GNASH_DEBUG_LOADMOVIE_REQUESTS_PROCESSING log_debug("Processing %d loadMovie requests", _loadMovieRequests.size()); +#endif for (LoadMovieRequests::iterator it=_loadMovieRequests.begin(); it != _loadMovieRequests.end(); ) { Index: server/vm/ASHandlers.cpp =================================================================== RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v retrieving revision 1.175 retrieving revision 1.176 diff -u -b -r1.175 -r1.176 --- server/vm/ASHandlers.cpp 9 Jan 2008 14:53:18 -0000 1.175 +++ server/vm/ASHandlers.cpp 9 Jan 2008 17:52:17 -0000 1.176 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: ASHandlers.cpp,v 1.175 2008/01/09 14:53:18 strk Exp $ */ +/* $Id: ASHandlers.cpp,v 1.176 2008/01/09 17:52:17 strk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2076,6 +2076,9 @@ ) { +// It seems queuing loadMovie requests breaks the canonical wbt testcase... +#define QUEUE_MOVIE_LOADS 1 + assert(url_c); if ( *url_c == '\0' ) @@ -2202,8 +2205,11 @@ { unsigned int levelno = atoi(target_string.c_str()+6); log_debug(_("Testing _level loading (level %u)"), levelno); - //VM::get().getRoot().loadLevel(levelno, url); +#ifdef QUEUE_MOVIE_LOADS VM::get().getRoot().loadMovie(url, s); // TODO: add third argument for the method +#else + VM::get().getRoot().loadLevel(levelno, url); +#endif return; } @@ -2219,9 +2225,18 @@ return; } - //target_movie->loadMovie(url); - std::string s = boost::to_lower_copy(target.to_string()); - VM::get().getRoot().loadMovie(url, s); // TODO: add third argument for the method +#ifdef QUEUE_MOVIE_LOADS + std::string s = target_movie->getTarget(); // or getOrigTarget ? + if ( s != target_movie->getOrigTarget() ) + { + log_debug("TESTME: target of a loadMovie changed its target path"); + } + movie_root& mr = VM::get().getRoot(); + assert( mr.findCharacterByTarget(s) == target_movie ); + mr.loadMovie(url, s); // TODO: add third argument for the method +#else + target_movie->loadMovie(url); +#endif return; } @@ -2238,8 +2253,11 @@ { unsigned int levelno = atoi(target_string.c_str()+6); log_debug(_("Testing _level loading (level %u)"), levelno); - //VM::get().getRoot().loadLevel(levelno, url); +#ifdef QUEUE_MOVIE_LOADS VM::get().getRoot().loadMovie(url, s); // TODO: add third argument for the method +#else + VM::get().getRoot().loadLevel(levelno, url); +#endif return; } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit