[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