[Swfdec-commits] Branch '0.8' - 2 commits - swfdec/swfdec_sprite_movie_as.c test/trace

Benjamin Otte company at kemper.freedesktop.org
Mon Nov 3 14:21:15 PST 2008


 swfdec/swfdec_sprite_movie_as.c          |    7 +++++++
 test/trace/Makefile.am                   |    9 +++++++++
 test/trace/crash-0.8.2-gotoAndPlay-5.swf |binary
 test/trace/crash-0.8.2-gotoAndPlay-6.swf |binary
 test/trace/crash-0.8.2-gotoAndPlay-7.swf |binary
 test/trace/crash-0.8.2-gotoAndPlay-8.swf |binary
 test/trace/crash-0.8.2-gotoAndPlay.as    |    7 +++++++
 7 files changed, 23 insertions(+)

New commits:
commit 5a0eee23234820e60dc4c175ac693015240fad9e
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Nov 3 23:08:15 2008 +0100

    add test for gotoAndPlay crash

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 5e674e0..62322f7 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -1022,6 +1022,15 @@ EXTRA_DIST = \
 	crash-0.8.0-huffmann-table-8.swf \
 	crash-0.8.0-huffmann-table-8.swf.trace \
 	crash-0.8.0-huffmann-table.xml \
+	crash-0.8.2-gotoAndPlay-5.swf \
+	crash-0.8.2-gotoAndPlay-5.swf.trace \
+	crash-0.8.2-gotoAndPlay-6.swf \
+	crash-0.8.2-gotoAndPlay-6.swf.trace \
+	crash-0.8.2-gotoAndPlay-7.swf \
+	crash-0.8.2-gotoAndPlay-7.swf.trace \
+	crash-0.8.2-gotoAndPlay-8.swf \
+	crash-0.8.2-gotoAndPlay-8.swf.trace \
+	crash-0.8.2-gotoAndPlay.as \
 	createEmptyMovieClip-events.sc \
 	createEmptyMovieClip-events.swf \
 	createEmptyMovieClip-events.swf.trace \
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-5.swf b/test/trace/crash-0.8.2-gotoAndPlay-5.swf
new file mode 100644
index 0000000..cca9dc9
Binary files /dev/null and b/test/trace/crash-0.8.2-gotoAndPlay-5.swf differ
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-5.swf.trace b/test/trace/crash-0.8.2-gotoAndPlay-5.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-6.swf b/test/trace/crash-0.8.2-gotoAndPlay-6.swf
new file mode 100644
index 0000000..85b549e
Binary files /dev/null and b/test/trace/crash-0.8.2-gotoAndPlay-6.swf differ
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-6.swf.trace b/test/trace/crash-0.8.2-gotoAndPlay-6.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-7.swf b/test/trace/crash-0.8.2-gotoAndPlay-7.swf
new file mode 100644
index 0000000..c7a02f4
Binary files /dev/null and b/test/trace/crash-0.8.2-gotoAndPlay-7.swf differ
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-7.swf.trace b/test/trace/crash-0.8.2-gotoAndPlay-7.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-8.swf b/test/trace/crash-0.8.2-gotoAndPlay-8.swf
new file mode 100644
index 0000000..3bf0c5d
Binary files /dev/null and b/test/trace/crash-0.8.2-gotoAndPlay-8.swf differ
diff --git a/test/trace/crash-0.8.2-gotoAndPlay-8.swf.trace b/test/trace/crash-0.8.2-gotoAndPlay-8.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.8.2-gotoAndPlay.as b/test/trace/crash-0.8.2-gotoAndPlay.as
new file mode 100644
index 0000000..a9391fe
--- /dev/null
+++ b/test/trace/crash-0.8.2-gotoAndPlay.as
@@ -0,0 +1,7 @@
+// makeswf -v 7 -s 200x150 -r 1 -o crash-0.8.2-gotoAndPlay.swf crash-0.8.2-gotoAndPlay.as
+
+createEmptyMovieClip ("a", 0);
+a.gotoAndPlay ("hi");
+a.gotoAndStop ("ho");
+
+getURL ("fscommand:quit", "");
commit 9666246059792a2ab3b357eacfd62260925daddd
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Nov 3 23:07:46 2008 +0100

    fix crash when calling gotoAndPlay (label) on a script-created movieclip

diff --git a/swfdec/swfdec_sprite_movie_as.c b/swfdec/swfdec_sprite_movie_as.c
index b1bb452..191f83e 100644
--- a/swfdec/swfdec_sprite_movie_as.c
+++ b/swfdec/swfdec_sprite_movie_as.c
@@ -470,6 +470,7 @@ swfdec_sprite_movie_do_goto (SwfdecSpriteMovie *movie, SwfdecAsValue *target)
   int frame;
 
   g_return_if_fail (SWFDEC_IS_SPRITE_MOVIE (movie));
+  g_return_if_fail (movie->sprite != NULL);
   g_return_if_fail (SWFDEC_IS_AS_VALUE (target));
 
   if (SWFDEC_AS_VALUE_IS_STRING (target)) {
@@ -498,6 +499,9 @@ swfdec_sprite_movie_gotoAndPlay (SwfdecAsContext *cx, SwfdecAsObject *object,
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_SPRITE_MOVIE, (gpointer)&movie, "v", &val);
   
+  if (movie->sprite == NULL)
+    return;
+
   swfdec_sprite_movie_do_goto (movie, &val);
   movie->playing = TRUE;
 }
@@ -512,6 +516,9 @@ swfdec_sprite_movie_gotoAndStop (SwfdecAsContext *cx, SwfdecAsObject *object,
 
   SWFDEC_AS_CHECK (SWFDEC_TYPE_SPRITE_MOVIE, (gpointer)&movie, "v", &val);
   
+  if (movie->sprite == NULL)
+    return;
+
   swfdec_sprite_movie_do_goto (movie, &val);
   movie->playing = FALSE;
 }


More information about the Swfdec-commits mailing list