[Swfdec-commits] 2 commits - swfdec/swfdec_movie.c test/trace
Benjamin Otte
company at kemper.freedesktop.org
Fri May 2 02:34:21 PDT 2008
swfdec/swfdec_movie.c | 6 ++++--
test/trace/Makefile.am | 9 +++++++++
test/trace/destroyed-movie-resolve-5.swf |binary
test/trace/destroyed-movie-resolve-6.swf |binary
test/trace/destroyed-movie-resolve-7.swf |binary
test/trace/destroyed-movie-resolve-7.swf.trace | 2 ++
test/trace/destroyed-movie-resolve-8.swf |binary
test/trace/destroyed-movie-resolve-8.swf.trace | 2 ++
test/trace/destroyed-movie-resolve.as | 13 +++++++++++++
9 files changed, 30 insertions(+), 2 deletions(-)
New commits:
commit 041b515eff91a75a4b532ca774637be956c7e713
Author: Benjamin Otte <otte at gnome.org>
Date: Fri May 2 11:21:49 2008 +0200
add test for recent fix
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index e31d0fa..36b7c9e 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -921,6 +921,15 @@ EXTRA_DIST = \
delete-prototypes-7.swf.trace \
delete-prototypes-8.swf \
delete-prototypes-8.swf.trace \
+ destroyed-movie-resolve-5.swf \
+ destroyed-movie-resolve-5.swf.trace \
+ destroyed-movie-resolve-6.swf \
+ destroyed-movie-resolve-6.swf.trace \
+ destroyed-movie-resolve-7.swf \
+ destroyed-movie-resolve-7.swf.trace \
+ destroyed-movie-resolve-8.swf \
+ destroyed-movie-resolve-8.swf.trace \
+ destroyed-movie-resolve.as \
displacement-map-filter-properties.as \
displacement-map-filter-properties-5.swf \
displacement-map-filter-properties-5.swf.trace \
diff --git a/test/trace/destroyed-movie-resolve-5.swf b/test/trace/destroyed-movie-resolve-5.swf
new file mode 100644
index 0000000..78ace4b
Binary files /dev/null and b/test/trace/destroyed-movie-resolve-5.swf differ
diff --git a/test/trace/destroyed-movie-resolve-5.swf.trace b/test/trace/destroyed-movie-resolve-5.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/destroyed-movie-resolve-6.swf b/test/trace/destroyed-movie-resolve-6.swf
new file mode 100644
index 0000000..a949710
Binary files /dev/null and b/test/trace/destroyed-movie-resolve-6.swf differ
diff --git a/test/trace/destroyed-movie-resolve-6.swf.trace b/test/trace/destroyed-movie-resolve-6.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/destroyed-movie-resolve-7.swf b/test/trace/destroyed-movie-resolve-7.swf
new file mode 100644
index 0000000..4faea10
Binary files /dev/null and b/test/trace/destroyed-movie-resolve-7.swf differ
diff --git a/test/trace/destroyed-movie-resolve-7.swf.trace b/test/trace/destroyed-movie-resolve-7.swf.trace
new file mode 100644
index 0000000..d4f80bf
--- /dev/null
+++ b/test/trace/destroyed-movie-resolve-7.swf.trace
@@ -0,0 +1,2 @@
+undefined
+undefined
diff --git a/test/trace/destroyed-movie-resolve-8.swf b/test/trace/destroyed-movie-resolve-8.swf
new file mode 100644
index 0000000..a8da121
Binary files /dev/null and b/test/trace/destroyed-movie-resolve-8.swf differ
diff --git a/test/trace/destroyed-movie-resolve-8.swf.trace b/test/trace/destroyed-movie-resolve-8.swf.trace
new file mode 100644
index 0000000..d4f80bf
--- /dev/null
+++ b/test/trace/destroyed-movie-resolve-8.swf.trace
@@ -0,0 +1,2 @@
+undefined
+undefined
diff --git a/test/trace/destroyed-movie-resolve.as b/test/trace/destroyed-movie-resolve.as
new file mode 100644
index 0000000..f7b8ac9
--- /dev/null
+++ b/test/trace/destroyed-movie-resolve.as
@@ -0,0 +1,13 @@
+// makeswf -v 7 -s 200x150 -r 1 -o destroyed-movie-resolve.swf destroyed-movie-resolve.as
+
+x = createEmptyMovieClip ("a", 0);
+x.answer = 42;
+
+loader = new MovieClipLoader ();
+loader.loadClip ("destroyed-movie-resolve.as", x);
+
+loader.onLoadComplete = function (m) {
+ trace (x.answer);
+ trace (a.answer);
+ getURL ("fscommand:quit", "");
+};
commit c21385984231689abe1171d81dd4b68b581052a8
Author: Benjamin Otte <otte at gnome.org>
Date: Fri May 2 11:18:57 2008 +0200
resolve variables of dead movieclips properly
We used to fail here because we used the wrong object.
FIXME: Check resolve rules for SwfdecMovie subclasses (buttons and textfields)
diff --git a/swfdec/swfdec_movie.c b/swfdec/swfdec_movie.c
index 5502a28..acb971a 100644
--- a/swfdec/swfdec_movie.c
+++ b/swfdec/swfdec_movie.c
@@ -371,8 +371,8 @@ swfdec_movie_do_remove (SwfdecMovie *movie, gboolean destroy)
* @movie: #SwfdecMovie to remove
*
* Removes this movie from its parent. In contrast to swfdec_movie_destroy (),
- * it will definitely cause a removal from the display list, but depending on
- * movie, it might still be possible to reference it from Actionscript.
+ * it might still be possible to reference it from Actionscript, if the movie
+ * queues onUnload event handlers.
**/
void
swfdec_movie_remove (SwfdecMovie *movie)
@@ -1011,6 +1011,7 @@ swfdec_movie_get_variable (SwfdecAsObject *object, SwfdecAsObject *orig,
movie = swfdec_movie_resolve (movie);
if (movie == NULL)
return FALSE;
+ object = SWFDEC_AS_OBJECT (movie);
if (SWFDEC_AS_OBJECT_CLASS (swfdec_movie_parent_class)->get (object, orig, variable, val, flags))
return TRUE;
@@ -1111,6 +1112,7 @@ swfdec_movie_set_variable (SwfdecAsObject *object, const char *variable,
movie = swfdec_movie_resolve (movie);
if (movie == NULL)
return;
+ object = SWFDEC_AS_OBJECT (movie);
if (swfdec_movie_set_asprop (movie, variable, val))
return;
More information about the Swfdec-commits
mailing list