Benjamin Otte
2007-Aug-22 12:30 UTC
[Swfdec] 2 commits - libswfdec/swfdec_as_context.c test/trace
libswfdec/swfdec_as_context.c | 4 +- test/trace/Makefile.am | 9 +++++ test/trace/rewind-remove-5.swf |binary test/trace/rewind-remove-5.swf.trace | 7 ++++ test/trace/rewind-remove-6.swf |binary test/trace/rewind-remove-6.swf.trace | 7 ++++ test/trace/rewind-remove-7.swf |binary test/trace/rewind-remove-7.swf.trace | 7 ++++ test/trace/rewind-remove-8.swf |binary test/trace/rewind-remove-8.swf.trace | 7 ++++ test/trace/rewind-remove.c | 58 +++++++++++++++++++++++++++++++++++ 11 files changed, 98 insertions(+), 1 deletion(-) New commits: diff-tree f76008d4e5427597e9810132fb40a7571ca20ee3 (from 2145b52e9511f75b004c86347a63813a37cf5af8) Author: Benjamin Otte <otte at gnome.org> Date: Wed Aug 22 14:30:00 2007 +0200 only check as many Flash versions as we have functions for Those variables are named very unfortunate... diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c index 59df631..ccb6a3c 100644 --- a/libswfdec/swfdec_as_context.c +++ b/libswfdec/swfdec_as_context.c @@ -834,7 +834,9 @@ start: exec = spec->exec[version]; if (!exec) { guint real_version; - for (real_version = version + 1; !exec && real_version <= SWFDEC_AS_MAX_SCRIPT_VERSION; real_version++) { + for (real_version = version + 1; !exec && + real_version <= SWFDEC_AS_MAX_SCRIPT_VERSION - SWFDEC_AS_MIN_SCRIPT_VERSION; + real_version++) { exec = spec->exec[real_version]; } if (!exec) { diff-tree 2145b52e9511f75b004c86347a63813a37cf5af8 (from 361082fdf6ede11a08266193ca00247490121f6e) Author: Benjamin Otte <otte at gnome.org> Date: Wed Aug 22 14:29:28 2007 +0200 add test for removing only the right movies on rewind diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index aec7f1d..5911bb2 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -875,6 +875,15 @@ EXTRA_DIST = \ removesprite-depths-6.swf.trace \ removesprite-depths-7.swf \ removesprite-depths-7.swf.trace \ + rewind-remove.c \ + rewind-remove-5.swf \ + rewind-remove-5.swf.trace \ + rewind-remove-6.swf \ + rewind-remove-6.swf.trace \ + rewind-remove-7.swf \ + rewind-remove-7.swf.trace \ + rewind-remove-8.swf \ + rewind-remove-8.swf.trace \ rotation-5.swf \ rotation-5.swf.trace \ rotation2.as \ diff --git a/test/trace/rewind-remove-5.swf b/test/trace/rewind-remove-5.swf new file mode 100644 index 0000000..1b9884e Binary files /dev/null and b/test/trace/rewind-remove-5.swf differ diff --git a/test/trace/rewind-remove-5.swf.trace b/test/trace/rewind-remove-5.swf.trace new file mode 100644 index 0000000..312bfa5 --- /dev/null +++ b/test/trace/rewind-remove-5.swf.trace @@ -0,0 +1,7 @@ +Make sure only the right movies get deleted +undefined +undefined +undefined +undefined +undefined +undefined diff --git a/test/trace/rewind-remove-6.swf b/test/trace/rewind-remove-6.swf new file mode 100644 index 0000000..39a6675 Binary files /dev/null and b/test/trace/rewind-remove-6.swf differ diff --git a/test/trace/rewind-remove-6.swf.trace b/test/trace/rewind-remove-6.swf.trace new file mode 100644 index 0000000..680839d --- /dev/null +++ b/test/trace/rewind-remove-6.swf.trace @@ -0,0 +1,7 @@ +Make sure only the right movies get deleted +_level0.foo0 +_level0.foo1 +undefined +undefined +_level0.foo4 +_level0.foo5 diff --git a/test/trace/rewind-remove-7.swf b/test/trace/rewind-remove-7.swf new file mode 100644 index 0000000..c1125a8 Binary files /dev/null and b/test/trace/rewind-remove-7.swf differ diff --git a/test/trace/rewind-remove-7.swf.trace b/test/trace/rewind-remove-7.swf.trace new file mode 100644 index 0000000..680839d --- /dev/null +++ b/test/trace/rewind-remove-7.swf.trace @@ -0,0 +1,7 @@ +Make sure only the right movies get deleted +_level0.foo0 +_level0.foo1 +undefined +undefined +_level0.foo4 +_level0.foo5 diff --git a/test/trace/rewind-remove-8.swf b/test/trace/rewind-remove-8.swf new file mode 100644 index 0000000..8007ab0 Binary files /dev/null and b/test/trace/rewind-remove-8.swf differ diff --git a/test/trace/rewind-remove-8.swf.trace b/test/trace/rewind-remove-8.swf.trace new file mode 100644 index 0000000..680839d --- /dev/null +++ b/test/trace/rewind-remove-8.swf.trace @@ -0,0 +1,7 @@ +Make sure only the right movies get deleted +_level0.foo0 +_level0.foo1 +undefined +undefined +_level0.foo4 +_level0.foo5 diff --git a/test/trace/rewind-remove.c b/test/trace/rewind-remove.c new file mode 100644 index 0000000..e840b09 --- /dev/null +++ b/test/trace/rewind-remove.c @@ -0,0 +1,58 @@ +/* gcc `pkg-config --libs --cflags libming` rewind-remove.c -o rewind-remove && ./rewind-remove + */ + +#include <ming.h> + +static void +do_movie (int version) +{ + SWFMovie movie; + SWFMovieClip clip; + SWFDisplayItem item; + char name[100]; + + movie = newSWFMovieWithVersion (version); + movie = newSWFMovie(); + SWFMovie_setRate (movie, 1); + SWFMovie_setDimension (movie, 200, 150); + + SWFMovie_add (movie, (SWFBlock) newSWFAction ("" + "if (was_here == undefined) {" + " was_here = true;" + " trace (\"Make sure only the right movies get deleted\");" + " createEmptyMovieClip (\"foo0\", 1000000);" + " createEmptyMovieClip (\"foo1\", 0);" + " createEmptyMovieClip (\"foo2\", -1);" + " createEmptyMovieClip (\"foo3\", -16384);" + " createEmptyMovieClip (\"foo4\", -16385);" + " createEmptyMovieClip (\"foo5\", -1000000);" + "} else {" + " trace (foo0);" + " trace (foo1);" + " trace (foo2);" + " trace (foo3);" + " trace (foo4);" + " trace (foo5);" + " loadMovie (\"FSCommand:quit\", \"\");" + "}" + "")); + SWFMovie_nextFrame (movie); + SWFMovie_nextFrame (movie); + + sprintf (name, "rewind-remove-%d.swf", version); + SWFMovie_save (movie, name); +} + +int +main (int argc, char **argv) +{ + int i; + + if (Ming_init ()) + return 1; + + for (i = 5; i < 9; i++) + do_movie (i); + + return 0; +}