gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/movie_root.cpp server/vm...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/movie_root.cpp server/vm...
Date: Wed, 09 Jan 2008 17:52:18 +0000

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 <address@hidden>
 
+       * 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 <address@hidden>
+
        * 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;
        }
 




reply via email to

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