gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_start-


From: Sandro Santilli
Subject: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_start-79-g78619f0
Date: Thu, 17 Feb 2011 18:16:58 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".

The branch, master has been updated
       via  78619f0b6b11fcc4af9564f3179703ba12e46533 (commit)
      from  12a026434bc252d59b338485e4c4a5a0e79e2819 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=78619f0b6b11fcc4af9564f3179703ba12e46533


commit 78619f0b6b11fcc4af9564f3179703ba12e46533
Author: Sandro Santilli <address@hidden>
Date:   Thu Feb 17 19:15:42 2011 +0100

    Log an error rather than crashing when realizing loading of a movie won't 
work due to limitation in movie_root::findCharacterByTarget. Fixes the 
assertion failure of bug #32506 (but not support for that movie).

diff --git a/libcore/vm/ASHandlers.cpp b/libcore/vm/ASHandlers.cpp
index 805ff20..1815f5e 100644
--- a/libcore/vm/ASHandlers.cpp
+++ b/libcore/vm/ASHandlers.cpp
@@ -3546,7 +3546,7 @@ commonGetURL(as_environment& env, as_value target,
             target_string, url, static_cast<int>(method),
             sendVarsMethod, loadTargetFlag, loadVariableFlag);
 
-    DisplayObject* target_ch = findTarget(env, target.to_string());
+    DisplayObject* target_ch = findTarget(env, target_string);
     MovieClip* target_movie = target_ch ? target_ch->to_movie() : 0;
 
     if (loadVariableFlag) {
@@ -3618,13 +3618,28 @@ commonGetURL(as_environment& env, as_value target,
 
         const std::string s = target_movie->getTarget(); // or getOrigTarget ?
         if (s != target_movie->getOrigTarget()) {
-            log_debug(_("TESTME: target of a loadMovie changed its target "
-                        "path"));
+            log_debug("TESTME: target of a loadMovie changed its target path");
         }
         
-        // TODO: try to trigger this !
-        assert(m.findCharacterByTarget(s) == target_movie);
+        // To trigger: https://savannah.gnu.org/bugs/?32506
+        if ( m.findCharacterByTarget(s) != target_movie ) {
+            log_error("FIXME: "
+                "getURL target %1% is resolved by findTarget(env) "
+                "to sprite %2%. Sprite %2% has "
+                "target %3%. Target %3% will be resolved "
+                "by movie_root::findCharacterByTarget() to %4%",
+                target_string, target_movie, s,
+                m.findCharacterByTarget(s));
+        }
 
+        // We might probably use target_string here rather than
+        // ``s'' (which is the _official_ target) but at time   
+        // of writing the MovieLoader will use
+        // movie_root::findCharacterByTarget to resolve paths,
+        // and that one, in turn, won't support /slash/notation
+        // which may be found in target_string (see also loadMovieTest.swf
+        // under misc-ming.all)
+        //
         m.loadMovie(url, s, varsToSend, sendVarsMethod); 
         return;
     }

-----------------------------------------------------------------------

Summary of changes:
 libcore/vm/ASHandlers.cpp |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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