Benjamin Otte
2007-Aug-23 21:44 UTC
[Swfdec] 23 commits - doc/.gitignore doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec-gtk/swfdec-gtk.h libswfdec-gtk/swfdec_gtk_keys.c libswfdec-gtk/swfdec_gtk_keys.h libswfdec-gtk/swfdec_gtk_widget.c libswfdec/Makefile.am libswfdec/swfdec_as_debugger.c libswfdec/swfdec_as_debugger.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_string.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_audio_flv.c libswfdec/swfdec_codec_ffmpeg.c libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_load_object_as.h libswfdec/swfdec_movie_asprops.c libswfdec/swfdec_player.c libswfdec/swfdec_script.c libswfdec/swfdec_xml_as.c libswfdec/swfdec_xml_as.h libswfdec/swfdec_xml.c libswfdec/swfdec_xml.h test/trace vivified/core
doc/.gitignore | 1 doc/Makefile.am | 3 doc/swfdec-docs.sgml | 1 doc/swfdec-sections.txt | 22 + libswfdec-gtk/swfdec-gtk.h | 1 libswfdec-gtk/swfdec_gtk_keys.c | 12 - libswfdec-gtk/swfdec_gtk_keys.h | 2 libswfdec-gtk/swfdec_gtk_widget.c | 2 libswfdec/Makefile.am | 5 libswfdec/swfdec_as_debugger.c | 26 +- libswfdec/swfdec_as_debugger.h | 6 libswfdec/swfdec_as_frame.c | 8 libswfdec/swfdec_as_object.c | 4 libswfdec/swfdec_as_string.c | 29 ++ libswfdec/swfdec_as_strings.c | 1 libswfdec/swfdec_audio_flv.c | 2 libswfdec/swfdec_codec_ffmpeg.c | 4 libswfdec/swfdec_initialize.as | 4 libswfdec/swfdec_initialize.h | 192 ++++++++-------- libswfdec/swfdec_load_object_as.h | 31 -- libswfdec/swfdec_movie_asprops.c | 11 libswfdec/swfdec_player.c | 6 libswfdec/swfdec_script.c | 8 libswfdec/swfdec_xml.c | 5 test/trace/Makefile.am | 9 test/trace/string-lastIndexOf-5.swf |binary test/trace/string-lastIndexOf-5.swf.trace | 342 ++++++++++++++++++++++++++++++ test/trace/string-lastIndexOf-6.swf |binary test/trace/string-lastIndexOf-6.swf.trace | 342 ++++++++++++++++++++++++++++++ test/trace/string-lastIndexOf-7.swf |binary test/trace/string-lastIndexOf-7.swf.trace | 342 ++++++++++++++++++++++++++++++ test/trace/string-lastIndexOf-8.swf |binary test/trace/string-lastIndexOf-8.swf.trace | 342 ++++++++++++++++++++++++++++++ test/trace/string-lastIndexOf.as | 13 + test/trace/trace.c | 7 vivified/core/vivi_breakpoint.c | 12 - vivified/core/vivi_debugger.c | 20 - vivified/core/vivi_initialize.as | 2 38 files changed, 1643 insertions(+), 174 deletions(-) New commits: diff-tree c1ba428ced0fd3f2965ee00d69b2ad5c6f95201c (from eb8ef9c1569fe84f111a524d032d97446a30b96c) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 23:44:14 2007 +0200 handle the case where a decoder couldn't be created due to errors diff --git a/libswfdec/swfdec_audio_flv.c b/libswfdec/swfdec_audio_flv.c index bdca2c2..3be7d81 100644 --- a/libswfdec/swfdec_audio_flv.c +++ b/libswfdec/swfdec_audio_flv.c @@ -102,6 +102,8 @@ swfdec_audio_flv_decode_one (SwfdecAudio in != flv->in) { SWFDEC_ERROR ("FIXME: format change not implemented"); return NULL; + } else if (flv->decoder == NULL) { + return NULL; } swfdec_audio_decoder_push (flv->decoder, buffer); if (flv->next_timestamp == 0) diff-tree eb8ef9c1569fe84f111a524d032d97446a30b96c (from d4d5dde0824487576861912640d9bdd0d0565af7) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 23:35:11 2007 +0200 abort if we don't get a new image diff --git a/libswfdec/swfdec_codec_ffmpeg.c b/libswfdec/swfdec_codec_ffmpeg.c index 3f9e387..9fae7cf 100644 --- a/libswfdec/swfdec_codec_ffmpeg.c +++ b/libswfdec/swfdec_codec_ffmpeg.c @@ -224,6 +224,10 @@ swfdec_video_decoder_ffmpeg_decode (Swfd SWFDEC_WARNING ("error decoding frame"); return NULL; } + if (got_image == 0) { + SWFDEC_WARNING ("error: did not get an image from decoding"); + return NULL; + } if (codec->sws == NULL) { codec->sws = sws_getContext (codec->ctx->width, codec->ctx->height, codec->ctx->pix_fmt, codec->ctx->width, codec->ctx->height, PIX_FMT_RGB32, 0, NULL, NULL, NULL); diff-tree d4d5dde0824487576861912640d9bdd0d0565af7 (from 72794f6dd88161fe9e36b11b5e6d3cd9cf86099f) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 21:56:29 2007 +0200 end when there's no time left diff --git a/test/trace/trace.c b/test/trace/trace.c index 5f2bc8d..03d57cc 100644 --- a/test/trace/trace.c +++ b/test/trace/trace.c @@ -140,9 +140,12 @@ run_test (gpointer testp, gpointer unuse if (advance > time_left) break; swfdec_player_advance (player, advance); - if (inter) - swfdec_interaction_advance (inter, player, advance); time_left -= advance; + if (inter) { + swfdec_interaction_advance (inter, player, advance); + if (time_left == 0) + break; + } } g_signal_handlers_disconnect_by_func (player, trace_cb, string); g_object_unref (player); diff-tree 72794f6dd88161fe9e36b11b5e6d3cd9cf86099f (from 54739135d48fe769f52512d64f211de3cdd2c138) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 20:19:30 2007 +0200 implement _url diff --git a/libswfdec/swfdec_movie_asprops.c b/libswfdec/swfdec_movie_asprops.c index e1887ec..3a44559 100644 --- a/libswfdec/swfdec_movie_asprops.c +++ b/libswfdec/swfdec_movie_asprops.c @@ -32,6 +32,7 @@ #include "swfdec_player_internal.h" #include "swfdec_sprite.h" #include "swfdec_sprite_movie.h" +#include "swfdec_swf_instance.h" static void mc_x_get (SwfdecMovie *movie, SwfdecAsValue *rval) @@ -355,6 +356,14 @@ mc_root (SwfdecMovie *movie, SwfdecAsVal SWFDEC_AS_VALUE_SET_OBJECT (rval, SWFDEC_AS_OBJECT (movie)); } +static void +mc_url_get (SwfdecMovie *movie, SwfdecAsValue *rval) +{ + SWFDEC_AS_VALUE_SET_STRING (rval, swfdec_as_context_get_string ( + SWFDEC_AS_OBJECT (movie)->context, + swfdec_url_get_url (swfdec_loader_get_url (movie->swf->loader)))); +} + struct { gboolean needs_movie; const char *name; @@ -376,7 +385,7 @@ struct { { 1, SWFDEC_AS_STR__framesloaded,mc_framesloaded, NULL}, { 0, SWFDEC_AS_STR__name, mc_name_get, mc_name_set }, { 1, SWFDEC_AS_STR__droptarget, NULL, NULL }, //"_droptarget" - { 0, SWFDEC_AS_STR__url, NULL, NULL }, //"_url" + { 0, SWFDEC_AS_STR__url, mc_url_get, NULL }, { 0, SWFDEC_AS_STR__highquality, NULL, NULL }, //"_highquality" { 0, SWFDEC_AS_STR__focusrect, NULL, NULL }, //"_focusrect" { 0, SWFDEC_AS_STR__soundbuftime,NULL, NULL }, //"_soundbuftime" diff-tree 54739135d48fe769f52512d64f211de3cdd2c138 (from ef88186bc8874a97c155d0b2cbabe772021f8d6e) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 19:25:00 2007 +0200 add test for lastIndexOf diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 4f5f501..8bc9273 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -1065,6 +1065,15 @@ EXTRA_DIST = \ string-indexof-6.swf.trace \ string-indexof-7.swf \ string-indexof-7.swf.trace \ + string-lastIndexOf.as \ + string-lastIndexOf-5.swf \ + string-lastIndexOf-5.swf.trace \ + string-lastIndexOf-6.swf \ + string-lastIndexOf-6.swf.trace \ + string-lastIndexOf-7.swf \ + string-lastIndexOf-7.swf.trace \ + string-lastIndexOf-8.swf \ + string-lastIndexOf-8.swf.trace \ string-split.as \ string-split-5.swf \ string-split-5.swf.trace \ diff --git a/test/trace/string-lastIndexOf-5.swf b/test/trace/string-lastIndexOf-5.swf new file mode 100644 index 0000000..a73460c Binary files /dev/null and b/test/trace/string-lastIndexOf-5.swf differ diff --git a/test/trace/string-lastIndexOf-5.swf.trace b/test/trace/string-lastIndexOf-5.swf.trace new file mode 100644 index 0000000..e374473 --- /dev/null +++ b/test/trace/string-lastIndexOf-5.swf.trace @@ -0,0 +1,342 @@ +test String.lastIndexOf +s.lastIndexOf ("H") = 0 +s.lastIndexOf ("H", -15) = -1 +s.lastIndexOf ("H", -14) = -1 +s.lastIndexOf ("H", -13) = -1 +s.lastIndexOf ("H", -12) = -1 +s.lastIndexOf ("H", -11) = -1 +s.lastIndexOf ("H", -10) = -1 +s.lastIndexOf ("H", -9) = -1 +s.lastIndexOf ("H", -8) = -1 +s.lastIndexOf ("H", -7) = -1 +s.lastIndexOf ("H", -6) = -1 +s.lastIndexOf ("H", -5) = -1 +s.lastIndexOf ("H", -4) = -1 +s.lastIndexOf ("H", -3) = -1 +s.lastIndexOf ("H", -2) = -1 +s.lastIndexOf ("H", -1) = -1 +s.lastIndexOf ("H", 0) = 0 +s.lastIndexOf ("H", 1) = 0 +s.lastIndexOf ("H", 2) = 0 +s.lastIndexOf ("H", 3) = 0 +s.lastIndexOf ("H", 4) = 0 +s.lastIndexOf ("H", 5) = 0 +s.lastIndexOf ("H", 6) = 0 +s.lastIndexOf ("H", 7) = 0 +s.lastIndexOf ("H", 8) = 0 +s.lastIndexOf ("H", 9) = 0 +s.lastIndexOf ("H", 10) = 0 +s.lastIndexOf ("H", 11) = 0 +s.lastIndexOf ("H", 12) = 0 +s.lastIndexOf ("H", 13) = 0 +s.lastIndexOf ("H", 14) = 0 +s.lastIndexOf ("e") = 1 +s.lastIndexOf ("e", -15) = -1 +s.lastIndexOf ("e", -14) = -1 +s.lastIndexOf ("e", -13) = -1 +s.lastIndexOf ("e", -12) = -1 +s.lastIndexOf ("e", -11) = -1 +s.lastIndexOf ("e", -10) = -1 +s.lastIndexOf ("e", -9) = -1 +s.lastIndexOf ("e", -8) = -1 +s.lastIndexOf ("e", -7) = -1 +s.lastIndexOf ("e", -6) = -1 +s.lastIndexOf ("e", -5) = -1 +s.lastIndexOf ("e", -4) = -1 +s.lastIndexOf ("e", -3) = -1 +s.lastIndexOf ("e", -2) = -1 +s.lastIndexOf ("e", -1) = -1 +s.lastIndexOf ("e", 0) = -1 +s.lastIndexOf ("e", 1) = 1 +s.lastIndexOf ("e", 2) = 1 +s.lastIndexOf ("e", 3) = 1 +s.lastIndexOf ("e", 4) = 1 +s.lastIndexOf ("e", 5) = 1 +s.lastIndexOf ("e", 6) = 1 +s.lastIndexOf ("e", 7) = 1 +s.lastIndexOf ("e", 8) = 1 +s.lastIndexOf ("e", 9) = 1 +s.lastIndexOf ("e", 10) = 1 +s.lastIndexOf ("e", 11) = 1 +s.lastIndexOf ("e", 12) = 1 +s.lastIndexOf ("e", 13) = 1 +s.lastIndexOf ("e", 14) = 1 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf (" ") = 5 +s.lastIndexOf (" ", -15) = -1 +s.lastIndexOf (" ", -14) = -1 +s.lastIndexOf (" ", -13) = -1 +s.lastIndexOf (" ", -12) = -1 +s.lastIndexOf (" ", -11) = -1 +s.lastIndexOf (" ", -10) = -1 +s.lastIndexOf (" ", -9) = -1 +s.lastIndexOf (" ", -8) = -1 +s.lastIndexOf (" ", -7) = -1 +s.lastIndexOf (" ", -6) = -1 +s.lastIndexOf (" ", -5) = -1 +s.lastIndexOf (" ", -4) = -1 +s.lastIndexOf (" ", -3) = -1 +s.lastIndexOf (" ", -2) = -1 +s.lastIndexOf (" ", -1) = -1 +s.lastIndexOf (" ", 0) = -1 +s.lastIndexOf (" ", 1) = -1 +s.lastIndexOf (" ", 2) = -1 +s.lastIndexOf (" ", 3) = -1 +s.lastIndexOf (" ", 4) = -1 +s.lastIndexOf (" ", 5) = 5 +s.lastIndexOf (" ", 6) = 5 +s.lastIndexOf (" ", 7) = 5 +s.lastIndexOf (" ", 8) = 5 +s.lastIndexOf (" ", 9) = 5 +s.lastIndexOf (" ", 10) = 5 +s.lastIndexOf (" ", 11) = 5 +s.lastIndexOf (" ", 12) = 5 +s.lastIndexOf (" ", 13) = 5 +s.lastIndexOf (" ", 14) = 5 +s.lastIndexOf ("W") = 6 +s.lastIndexOf ("W", -15) = -1 +s.lastIndexOf ("W", -14) = -1 +s.lastIndexOf ("W", -13) = -1 +s.lastIndexOf ("W", -12) = -1 +s.lastIndexOf ("W", -11) = -1 +s.lastIndexOf ("W", -10) = -1 +s.lastIndexOf ("W", -9) = -1 +s.lastIndexOf ("W", -8) = -1 +s.lastIndexOf ("W", -7) = -1 +s.lastIndexOf ("W", -6) = -1 +s.lastIndexOf ("W", -5) = -1 +s.lastIndexOf ("W", -4) = -1 +s.lastIndexOf ("W", -3) = -1 +s.lastIndexOf ("W", -2) = -1 +s.lastIndexOf ("W", -1) = -1 +s.lastIndexOf ("W", 0) = -1 +s.lastIndexOf ("W", 1) = -1 +s.lastIndexOf ("W", 2) = -1 +s.lastIndexOf ("W", 3) = -1 +s.lastIndexOf ("W", 4) = -1 +s.lastIndexOf ("W", 5) = -1 +s.lastIndexOf ("W", 6) = 6 +s.lastIndexOf ("W", 7) = 6 +s.lastIndexOf ("W", 8) = 6 +s.lastIndexOf ("W", 9) = 6 +s.lastIndexOf ("W", 10) = 6 +s.lastIndexOf ("W", 11) = 6 +s.lastIndexOf ("W", 12) = 6 +s.lastIndexOf ("W", 13) = 6 +s.lastIndexOf ("W", 14) = 6 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf ("r") = 8 +s.lastIndexOf ("r", -15) = -1 +s.lastIndexOf ("r", -14) = -1 +s.lastIndexOf ("r", -13) = -1 +s.lastIndexOf ("r", -12) = -1 +s.lastIndexOf ("r", -11) = -1 +s.lastIndexOf ("r", -10) = -1 +s.lastIndexOf ("r", -9) = -1 +s.lastIndexOf ("r", -8) = -1 +s.lastIndexOf ("r", -7) = -1 +s.lastIndexOf ("r", -6) = -1 +s.lastIndexOf ("r", -5) = -1 +s.lastIndexOf ("r", -4) = -1 +s.lastIndexOf ("r", -3) = -1 +s.lastIndexOf ("r", -2) = -1 +s.lastIndexOf ("r", -1) = -1 +s.lastIndexOf ("r", 0) = -1 +s.lastIndexOf ("r", 1) = -1 +s.lastIndexOf ("r", 2) = -1 +s.lastIndexOf ("r", 3) = -1 +s.lastIndexOf ("r", 4) = -1 +s.lastIndexOf ("r", 5) = -1 +s.lastIndexOf ("r", 6) = -1 +s.lastIndexOf ("r", 7) = -1 +s.lastIndexOf ("r", 8) = 8 +s.lastIndexOf ("r", 9) = 8 +s.lastIndexOf ("r", 10) = 8 +s.lastIndexOf ("r", 11) = 8 +s.lastIndexOf ("r", 12) = 8 +s.lastIndexOf ("r", 13) = 8 +s.lastIndexOf ("r", 14) = 8 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("d") = 10 +s.lastIndexOf ("d", -15) = -1 +s.lastIndexOf ("d", -14) = -1 +s.lastIndexOf ("d", -13) = -1 +s.lastIndexOf ("d", -12) = -1 +s.lastIndexOf ("d", -11) = -1 +s.lastIndexOf ("d", -10) = -1 +s.lastIndexOf ("d", -9) = -1 +s.lastIndexOf ("d", -8) = -1 +s.lastIndexOf ("d", -7) = -1 +s.lastIndexOf ("d", -6) = -1 +s.lastIndexOf ("d", -5) = -1 +s.lastIndexOf ("d", -4) = -1 +s.lastIndexOf ("d", -3) = -1 +s.lastIndexOf ("d", -2) = -1 +s.lastIndexOf ("d", -1) = -1 +s.lastIndexOf ("d", 0) = -1 +s.lastIndexOf ("d", 1) = -1 +s.lastIndexOf ("d", 2) = -1 +s.lastIndexOf ("d", 3) = -1 +s.lastIndexOf ("d", 4) = -1 +s.lastIndexOf ("d", 5) = -1 +s.lastIndexOf ("d", 6) = -1 +s.lastIndexOf ("d", 7) = -1 +s.lastIndexOf ("d", 8) = -1 +s.lastIndexOf ("d", 9) = -1 +s.lastIndexOf ("d", 10) = 10 +s.lastIndexOf ("d", 11) = 10 +s.lastIndexOf ("d", 12) = 10 +s.lastIndexOf ("d", 13) = 10 +s.lastIndexOf ("d", 14) = 10 diff --git a/test/trace/string-lastIndexOf-6.swf b/test/trace/string-lastIndexOf-6.swf new file mode 100644 index 0000000..c62c388 Binary files /dev/null and b/test/trace/string-lastIndexOf-6.swf differ diff --git a/test/trace/string-lastIndexOf-6.swf.trace b/test/trace/string-lastIndexOf-6.swf.trace new file mode 100644 index 0000000..e374473 --- /dev/null +++ b/test/trace/string-lastIndexOf-6.swf.trace @@ -0,0 +1,342 @@ +test String.lastIndexOf +s.lastIndexOf ("H") = 0 +s.lastIndexOf ("H", -15) = -1 +s.lastIndexOf ("H", -14) = -1 +s.lastIndexOf ("H", -13) = -1 +s.lastIndexOf ("H", -12) = -1 +s.lastIndexOf ("H", -11) = -1 +s.lastIndexOf ("H", -10) = -1 +s.lastIndexOf ("H", -9) = -1 +s.lastIndexOf ("H", -8) = -1 +s.lastIndexOf ("H", -7) = -1 +s.lastIndexOf ("H", -6) = -1 +s.lastIndexOf ("H", -5) = -1 +s.lastIndexOf ("H", -4) = -1 +s.lastIndexOf ("H", -3) = -1 +s.lastIndexOf ("H", -2) = -1 +s.lastIndexOf ("H", -1) = -1 +s.lastIndexOf ("H", 0) = 0 +s.lastIndexOf ("H", 1) = 0 +s.lastIndexOf ("H", 2) = 0 +s.lastIndexOf ("H", 3) = 0 +s.lastIndexOf ("H", 4) = 0 +s.lastIndexOf ("H", 5) = 0 +s.lastIndexOf ("H", 6) = 0 +s.lastIndexOf ("H", 7) = 0 +s.lastIndexOf ("H", 8) = 0 +s.lastIndexOf ("H", 9) = 0 +s.lastIndexOf ("H", 10) = 0 +s.lastIndexOf ("H", 11) = 0 +s.lastIndexOf ("H", 12) = 0 +s.lastIndexOf ("H", 13) = 0 +s.lastIndexOf ("H", 14) = 0 +s.lastIndexOf ("e") = 1 +s.lastIndexOf ("e", -15) = -1 +s.lastIndexOf ("e", -14) = -1 +s.lastIndexOf ("e", -13) = -1 +s.lastIndexOf ("e", -12) = -1 +s.lastIndexOf ("e", -11) = -1 +s.lastIndexOf ("e", -10) = -1 +s.lastIndexOf ("e", -9) = -1 +s.lastIndexOf ("e", -8) = -1 +s.lastIndexOf ("e", -7) = -1 +s.lastIndexOf ("e", -6) = -1 +s.lastIndexOf ("e", -5) = -1 +s.lastIndexOf ("e", -4) = -1 +s.lastIndexOf ("e", -3) = -1 +s.lastIndexOf ("e", -2) = -1 +s.lastIndexOf ("e", -1) = -1 +s.lastIndexOf ("e", 0) = -1 +s.lastIndexOf ("e", 1) = 1 +s.lastIndexOf ("e", 2) = 1 +s.lastIndexOf ("e", 3) = 1 +s.lastIndexOf ("e", 4) = 1 +s.lastIndexOf ("e", 5) = 1 +s.lastIndexOf ("e", 6) = 1 +s.lastIndexOf ("e", 7) = 1 +s.lastIndexOf ("e", 8) = 1 +s.lastIndexOf ("e", 9) = 1 +s.lastIndexOf ("e", 10) = 1 +s.lastIndexOf ("e", 11) = 1 +s.lastIndexOf ("e", 12) = 1 +s.lastIndexOf ("e", 13) = 1 +s.lastIndexOf ("e", 14) = 1 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf (" ") = 5 +s.lastIndexOf (" ", -15) = -1 +s.lastIndexOf (" ", -14) = -1 +s.lastIndexOf (" ", -13) = -1 +s.lastIndexOf (" ", -12) = -1 +s.lastIndexOf (" ", -11) = -1 +s.lastIndexOf (" ", -10) = -1 +s.lastIndexOf (" ", -9) = -1 +s.lastIndexOf (" ", -8) = -1 +s.lastIndexOf (" ", -7) = -1 +s.lastIndexOf (" ", -6) = -1 +s.lastIndexOf (" ", -5) = -1 +s.lastIndexOf (" ", -4) = -1 +s.lastIndexOf (" ", -3) = -1 +s.lastIndexOf (" ", -2) = -1 +s.lastIndexOf (" ", -1) = -1 +s.lastIndexOf (" ", 0) = -1 +s.lastIndexOf (" ", 1) = -1 +s.lastIndexOf (" ", 2) = -1 +s.lastIndexOf (" ", 3) = -1 +s.lastIndexOf (" ", 4) = -1 +s.lastIndexOf (" ", 5) = 5 +s.lastIndexOf (" ", 6) = 5 +s.lastIndexOf (" ", 7) = 5 +s.lastIndexOf (" ", 8) = 5 +s.lastIndexOf (" ", 9) = 5 +s.lastIndexOf (" ", 10) = 5 +s.lastIndexOf (" ", 11) = 5 +s.lastIndexOf (" ", 12) = 5 +s.lastIndexOf (" ", 13) = 5 +s.lastIndexOf (" ", 14) = 5 +s.lastIndexOf ("W") = 6 +s.lastIndexOf ("W", -15) = -1 +s.lastIndexOf ("W", -14) = -1 +s.lastIndexOf ("W", -13) = -1 +s.lastIndexOf ("W", -12) = -1 +s.lastIndexOf ("W", -11) = -1 +s.lastIndexOf ("W", -10) = -1 +s.lastIndexOf ("W", -9) = -1 +s.lastIndexOf ("W", -8) = -1 +s.lastIndexOf ("W", -7) = -1 +s.lastIndexOf ("W", -6) = -1 +s.lastIndexOf ("W", -5) = -1 +s.lastIndexOf ("W", -4) = -1 +s.lastIndexOf ("W", -3) = -1 +s.lastIndexOf ("W", -2) = -1 +s.lastIndexOf ("W", -1) = -1 +s.lastIndexOf ("W", 0) = -1 +s.lastIndexOf ("W", 1) = -1 +s.lastIndexOf ("W", 2) = -1 +s.lastIndexOf ("W", 3) = -1 +s.lastIndexOf ("W", 4) = -1 +s.lastIndexOf ("W", 5) = -1 +s.lastIndexOf ("W", 6) = 6 +s.lastIndexOf ("W", 7) = 6 +s.lastIndexOf ("W", 8) = 6 +s.lastIndexOf ("W", 9) = 6 +s.lastIndexOf ("W", 10) = 6 +s.lastIndexOf ("W", 11) = 6 +s.lastIndexOf ("W", 12) = 6 +s.lastIndexOf ("W", 13) = 6 +s.lastIndexOf ("W", 14) = 6 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf ("r") = 8 +s.lastIndexOf ("r", -15) = -1 +s.lastIndexOf ("r", -14) = -1 +s.lastIndexOf ("r", -13) = -1 +s.lastIndexOf ("r", -12) = -1 +s.lastIndexOf ("r", -11) = -1 +s.lastIndexOf ("r", -10) = -1 +s.lastIndexOf ("r", -9) = -1 +s.lastIndexOf ("r", -8) = -1 +s.lastIndexOf ("r", -7) = -1 +s.lastIndexOf ("r", -6) = -1 +s.lastIndexOf ("r", -5) = -1 +s.lastIndexOf ("r", -4) = -1 +s.lastIndexOf ("r", -3) = -1 +s.lastIndexOf ("r", -2) = -1 +s.lastIndexOf ("r", -1) = -1 +s.lastIndexOf ("r", 0) = -1 +s.lastIndexOf ("r", 1) = -1 +s.lastIndexOf ("r", 2) = -1 +s.lastIndexOf ("r", 3) = -1 +s.lastIndexOf ("r", 4) = -1 +s.lastIndexOf ("r", 5) = -1 +s.lastIndexOf ("r", 6) = -1 +s.lastIndexOf ("r", 7) = -1 +s.lastIndexOf ("r", 8) = 8 +s.lastIndexOf ("r", 9) = 8 +s.lastIndexOf ("r", 10) = 8 +s.lastIndexOf ("r", 11) = 8 +s.lastIndexOf ("r", 12) = 8 +s.lastIndexOf ("r", 13) = 8 +s.lastIndexOf ("r", 14) = 8 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("d") = 10 +s.lastIndexOf ("d", -15) = -1 +s.lastIndexOf ("d", -14) = -1 +s.lastIndexOf ("d", -13) = -1 +s.lastIndexOf ("d", -12) = -1 +s.lastIndexOf ("d", -11) = -1 +s.lastIndexOf ("d", -10) = -1 +s.lastIndexOf ("d", -9) = -1 +s.lastIndexOf ("d", -8) = -1 +s.lastIndexOf ("d", -7) = -1 +s.lastIndexOf ("d", -6) = -1 +s.lastIndexOf ("d", -5) = -1 +s.lastIndexOf ("d", -4) = -1 +s.lastIndexOf ("d", -3) = -1 +s.lastIndexOf ("d", -2) = -1 +s.lastIndexOf ("d", -1) = -1 +s.lastIndexOf ("d", 0) = -1 +s.lastIndexOf ("d", 1) = -1 +s.lastIndexOf ("d", 2) = -1 +s.lastIndexOf ("d", 3) = -1 +s.lastIndexOf ("d", 4) = -1 +s.lastIndexOf ("d", 5) = -1 +s.lastIndexOf ("d", 6) = -1 +s.lastIndexOf ("d", 7) = -1 +s.lastIndexOf ("d", 8) = -1 +s.lastIndexOf ("d", 9) = -1 +s.lastIndexOf ("d", 10) = 10 +s.lastIndexOf ("d", 11) = 10 +s.lastIndexOf ("d", 12) = 10 +s.lastIndexOf ("d", 13) = 10 +s.lastIndexOf ("d", 14) = 10 diff --git a/test/trace/string-lastIndexOf-7.swf b/test/trace/string-lastIndexOf-7.swf new file mode 100644 index 0000000..0046803 Binary files /dev/null and b/test/trace/string-lastIndexOf-7.swf differ diff --git a/test/trace/string-lastIndexOf-7.swf.trace b/test/trace/string-lastIndexOf-7.swf.trace new file mode 100644 index 0000000..e374473 --- /dev/null +++ b/test/trace/string-lastIndexOf-7.swf.trace @@ -0,0 +1,342 @@ +test String.lastIndexOf +s.lastIndexOf ("H") = 0 +s.lastIndexOf ("H", -15) = -1 +s.lastIndexOf ("H", -14) = -1 +s.lastIndexOf ("H", -13) = -1 +s.lastIndexOf ("H", -12) = -1 +s.lastIndexOf ("H", -11) = -1 +s.lastIndexOf ("H", -10) = -1 +s.lastIndexOf ("H", -9) = -1 +s.lastIndexOf ("H", -8) = -1 +s.lastIndexOf ("H", -7) = -1 +s.lastIndexOf ("H", -6) = -1 +s.lastIndexOf ("H", -5) = -1 +s.lastIndexOf ("H", -4) = -1 +s.lastIndexOf ("H", -3) = -1 +s.lastIndexOf ("H", -2) = -1 +s.lastIndexOf ("H", -1) = -1 +s.lastIndexOf ("H", 0) = 0 +s.lastIndexOf ("H", 1) = 0 +s.lastIndexOf ("H", 2) = 0 +s.lastIndexOf ("H", 3) = 0 +s.lastIndexOf ("H", 4) = 0 +s.lastIndexOf ("H", 5) = 0 +s.lastIndexOf ("H", 6) = 0 +s.lastIndexOf ("H", 7) = 0 +s.lastIndexOf ("H", 8) = 0 +s.lastIndexOf ("H", 9) = 0 +s.lastIndexOf ("H", 10) = 0 +s.lastIndexOf ("H", 11) = 0 +s.lastIndexOf ("H", 12) = 0 +s.lastIndexOf ("H", 13) = 0 +s.lastIndexOf ("H", 14) = 0 +s.lastIndexOf ("e") = 1 +s.lastIndexOf ("e", -15) = -1 +s.lastIndexOf ("e", -14) = -1 +s.lastIndexOf ("e", -13) = -1 +s.lastIndexOf ("e", -12) = -1 +s.lastIndexOf ("e", -11) = -1 +s.lastIndexOf ("e", -10) = -1 +s.lastIndexOf ("e", -9) = -1 +s.lastIndexOf ("e", -8) = -1 +s.lastIndexOf ("e", -7) = -1 +s.lastIndexOf ("e", -6) = -1 +s.lastIndexOf ("e", -5) = -1 +s.lastIndexOf ("e", -4) = -1 +s.lastIndexOf ("e", -3) = -1 +s.lastIndexOf ("e", -2) = -1 +s.lastIndexOf ("e", -1) = -1 +s.lastIndexOf ("e", 0) = -1 +s.lastIndexOf ("e", 1) = 1 +s.lastIndexOf ("e", 2) = 1 +s.lastIndexOf ("e", 3) = 1 +s.lastIndexOf ("e", 4) = 1 +s.lastIndexOf ("e", 5) = 1 +s.lastIndexOf ("e", 6) = 1 +s.lastIndexOf ("e", 7) = 1 +s.lastIndexOf ("e", 8) = 1 +s.lastIndexOf ("e", 9) = 1 +s.lastIndexOf ("e", 10) = 1 +s.lastIndexOf ("e", 11) = 1 +s.lastIndexOf ("e", 12) = 1 +s.lastIndexOf ("e", 13) = 1 +s.lastIndexOf ("e", 14) = 1 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf (" ") = 5 +s.lastIndexOf (" ", -15) = -1 +s.lastIndexOf (" ", -14) = -1 +s.lastIndexOf (" ", -13) = -1 +s.lastIndexOf (" ", -12) = -1 +s.lastIndexOf (" ", -11) = -1 +s.lastIndexOf (" ", -10) = -1 +s.lastIndexOf (" ", -9) = -1 +s.lastIndexOf (" ", -8) = -1 +s.lastIndexOf (" ", -7) = -1 +s.lastIndexOf (" ", -6) = -1 +s.lastIndexOf (" ", -5) = -1 +s.lastIndexOf (" ", -4) = -1 +s.lastIndexOf (" ", -3) = -1 +s.lastIndexOf (" ", -2) = -1 +s.lastIndexOf (" ", -1) = -1 +s.lastIndexOf (" ", 0) = -1 +s.lastIndexOf (" ", 1) = -1 +s.lastIndexOf (" ", 2) = -1 +s.lastIndexOf (" ", 3) = -1 +s.lastIndexOf (" ", 4) = -1 +s.lastIndexOf (" ", 5) = 5 +s.lastIndexOf (" ", 6) = 5 +s.lastIndexOf (" ", 7) = 5 +s.lastIndexOf (" ", 8) = 5 +s.lastIndexOf (" ", 9) = 5 +s.lastIndexOf (" ", 10) = 5 +s.lastIndexOf (" ", 11) = 5 +s.lastIndexOf (" ", 12) = 5 +s.lastIndexOf (" ", 13) = 5 +s.lastIndexOf (" ", 14) = 5 +s.lastIndexOf ("W") = 6 +s.lastIndexOf ("W", -15) = -1 +s.lastIndexOf ("W", -14) = -1 +s.lastIndexOf ("W", -13) = -1 +s.lastIndexOf ("W", -12) = -1 +s.lastIndexOf ("W", -11) = -1 +s.lastIndexOf ("W", -10) = -1 +s.lastIndexOf ("W", -9) = -1 +s.lastIndexOf ("W", -8) = -1 +s.lastIndexOf ("W", -7) = -1 +s.lastIndexOf ("W", -6) = -1 +s.lastIndexOf ("W", -5) = -1 +s.lastIndexOf ("W", -4) = -1 +s.lastIndexOf ("W", -3) = -1 +s.lastIndexOf ("W", -2) = -1 +s.lastIndexOf ("W", -1) = -1 +s.lastIndexOf ("W", 0) = -1 +s.lastIndexOf ("W", 1) = -1 +s.lastIndexOf ("W", 2) = -1 +s.lastIndexOf ("W", 3) = -1 +s.lastIndexOf ("W", 4) = -1 +s.lastIndexOf ("W", 5) = -1 +s.lastIndexOf ("W", 6) = 6 +s.lastIndexOf ("W", 7) = 6 +s.lastIndexOf ("W", 8) = 6 +s.lastIndexOf ("W", 9) = 6 +s.lastIndexOf ("W", 10) = 6 +s.lastIndexOf ("W", 11) = 6 +s.lastIndexOf ("W", 12) = 6 +s.lastIndexOf ("W", 13) = 6 +s.lastIndexOf ("W", 14) = 6 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf ("r") = 8 +s.lastIndexOf ("r", -15) = -1 +s.lastIndexOf ("r", -14) = -1 +s.lastIndexOf ("r", -13) = -1 +s.lastIndexOf ("r", -12) = -1 +s.lastIndexOf ("r", -11) = -1 +s.lastIndexOf ("r", -10) = -1 +s.lastIndexOf ("r", -9) = -1 +s.lastIndexOf ("r", -8) = -1 +s.lastIndexOf ("r", -7) = -1 +s.lastIndexOf ("r", -6) = -1 +s.lastIndexOf ("r", -5) = -1 +s.lastIndexOf ("r", -4) = -1 +s.lastIndexOf ("r", -3) = -1 +s.lastIndexOf ("r", -2) = -1 +s.lastIndexOf ("r", -1) = -1 +s.lastIndexOf ("r", 0) = -1 +s.lastIndexOf ("r", 1) = -1 +s.lastIndexOf ("r", 2) = -1 +s.lastIndexOf ("r", 3) = -1 +s.lastIndexOf ("r", 4) = -1 +s.lastIndexOf ("r", 5) = -1 +s.lastIndexOf ("r", 6) = -1 +s.lastIndexOf ("r", 7) = -1 +s.lastIndexOf ("r", 8) = 8 +s.lastIndexOf ("r", 9) = 8 +s.lastIndexOf ("r", 10) = 8 +s.lastIndexOf ("r", 11) = 8 +s.lastIndexOf ("r", 12) = 8 +s.lastIndexOf ("r", 13) = 8 +s.lastIndexOf ("r", 14) = 8 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("d") = 10 +s.lastIndexOf ("d", -15) = -1 +s.lastIndexOf ("d", -14) = -1 +s.lastIndexOf ("d", -13) = -1 +s.lastIndexOf ("d", -12) = -1 +s.lastIndexOf ("d", -11) = -1 +s.lastIndexOf ("d", -10) = -1 +s.lastIndexOf ("d", -9) = -1 +s.lastIndexOf ("d", -8) = -1 +s.lastIndexOf ("d", -7) = -1 +s.lastIndexOf ("d", -6) = -1 +s.lastIndexOf ("d", -5) = -1 +s.lastIndexOf ("d", -4) = -1 +s.lastIndexOf ("d", -3) = -1 +s.lastIndexOf ("d", -2) = -1 +s.lastIndexOf ("d", -1) = -1 +s.lastIndexOf ("d", 0) = -1 +s.lastIndexOf ("d", 1) = -1 +s.lastIndexOf ("d", 2) = -1 +s.lastIndexOf ("d", 3) = -1 +s.lastIndexOf ("d", 4) = -1 +s.lastIndexOf ("d", 5) = -1 +s.lastIndexOf ("d", 6) = -1 +s.lastIndexOf ("d", 7) = -1 +s.lastIndexOf ("d", 8) = -1 +s.lastIndexOf ("d", 9) = -1 +s.lastIndexOf ("d", 10) = 10 +s.lastIndexOf ("d", 11) = 10 +s.lastIndexOf ("d", 12) = 10 +s.lastIndexOf ("d", 13) = 10 +s.lastIndexOf ("d", 14) = 10 diff --git a/test/trace/string-lastIndexOf-8.swf b/test/trace/string-lastIndexOf-8.swf new file mode 100644 index 0000000..2497f10 Binary files /dev/null and b/test/trace/string-lastIndexOf-8.swf differ diff --git a/test/trace/string-lastIndexOf-8.swf.trace b/test/trace/string-lastIndexOf-8.swf.trace new file mode 100644 index 0000000..e374473 --- /dev/null +++ b/test/trace/string-lastIndexOf-8.swf.trace @@ -0,0 +1,342 @@ +test String.lastIndexOf +s.lastIndexOf ("H") = 0 +s.lastIndexOf ("H", -15) = -1 +s.lastIndexOf ("H", -14) = -1 +s.lastIndexOf ("H", -13) = -1 +s.lastIndexOf ("H", -12) = -1 +s.lastIndexOf ("H", -11) = -1 +s.lastIndexOf ("H", -10) = -1 +s.lastIndexOf ("H", -9) = -1 +s.lastIndexOf ("H", -8) = -1 +s.lastIndexOf ("H", -7) = -1 +s.lastIndexOf ("H", -6) = -1 +s.lastIndexOf ("H", -5) = -1 +s.lastIndexOf ("H", -4) = -1 +s.lastIndexOf ("H", -3) = -1 +s.lastIndexOf ("H", -2) = -1 +s.lastIndexOf ("H", -1) = -1 +s.lastIndexOf ("H", 0) = 0 +s.lastIndexOf ("H", 1) = 0 +s.lastIndexOf ("H", 2) = 0 +s.lastIndexOf ("H", 3) = 0 +s.lastIndexOf ("H", 4) = 0 +s.lastIndexOf ("H", 5) = 0 +s.lastIndexOf ("H", 6) = 0 +s.lastIndexOf ("H", 7) = 0 +s.lastIndexOf ("H", 8) = 0 +s.lastIndexOf ("H", 9) = 0 +s.lastIndexOf ("H", 10) = 0 +s.lastIndexOf ("H", 11) = 0 +s.lastIndexOf ("H", 12) = 0 +s.lastIndexOf ("H", 13) = 0 +s.lastIndexOf ("H", 14) = 0 +s.lastIndexOf ("e") = 1 +s.lastIndexOf ("e", -15) = -1 +s.lastIndexOf ("e", -14) = -1 +s.lastIndexOf ("e", -13) = -1 +s.lastIndexOf ("e", -12) = -1 +s.lastIndexOf ("e", -11) = -1 +s.lastIndexOf ("e", -10) = -1 +s.lastIndexOf ("e", -9) = -1 +s.lastIndexOf ("e", -8) = -1 +s.lastIndexOf ("e", -7) = -1 +s.lastIndexOf ("e", -6) = -1 +s.lastIndexOf ("e", -5) = -1 +s.lastIndexOf ("e", -4) = -1 +s.lastIndexOf ("e", -3) = -1 +s.lastIndexOf ("e", -2) = -1 +s.lastIndexOf ("e", -1) = -1 +s.lastIndexOf ("e", 0) = -1 +s.lastIndexOf ("e", 1) = 1 +s.lastIndexOf ("e", 2) = 1 +s.lastIndexOf ("e", 3) = 1 +s.lastIndexOf ("e", 4) = 1 +s.lastIndexOf ("e", 5) = 1 +s.lastIndexOf ("e", 6) = 1 +s.lastIndexOf ("e", 7) = 1 +s.lastIndexOf ("e", 8) = 1 +s.lastIndexOf ("e", 9) = 1 +s.lastIndexOf ("e", 10) = 1 +s.lastIndexOf ("e", 11) = 1 +s.lastIndexOf ("e", 12) = 1 +s.lastIndexOf ("e", 13) = 1 +s.lastIndexOf ("e", 14) = 1 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf (" ") = 5 +s.lastIndexOf (" ", -15) = -1 +s.lastIndexOf (" ", -14) = -1 +s.lastIndexOf (" ", -13) = -1 +s.lastIndexOf (" ", -12) = -1 +s.lastIndexOf (" ", -11) = -1 +s.lastIndexOf (" ", -10) = -1 +s.lastIndexOf (" ", -9) = -1 +s.lastIndexOf (" ", -8) = -1 +s.lastIndexOf (" ", -7) = -1 +s.lastIndexOf (" ", -6) = -1 +s.lastIndexOf (" ", -5) = -1 +s.lastIndexOf (" ", -4) = -1 +s.lastIndexOf (" ", -3) = -1 +s.lastIndexOf (" ", -2) = -1 +s.lastIndexOf (" ", -1) = -1 +s.lastIndexOf (" ", 0) = -1 +s.lastIndexOf (" ", 1) = -1 +s.lastIndexOf (" ", 2) = -1 +s.lastIndexOf (" ", 3) = -1 +s.lastIndexOf (" ", 4) = -1 +s.lastIndexOf (" ", 5) = 5 +s.lastIndexOf (" ", 6) = 5 +s.lastIndexOf (" ", 7) = 5 +s.lastIndexOf (" ", 8) = 5 +s.lastIndexOf (" ", 9) = 5 +s.lastIndexOf (" ", 10) = 5 +s.lastIndexOf (" ", 11) = 5 +s.lastIndexOf (" ", 12) = 5 +s.lastIndexOf (" ", 13) = 5 +s.lastIndexOf (" ", 14) = 5 +s.lastIndexOf ("W") = 6 +s.lastIndexOf ("W", -15) = -1 +s.lastIndexOf ("W", -14) = -1 +s.lastIndexOf ("W", -13) = -1 +s.lastIndexOf ("W", -12) = -1 +s.lastIndexOf ("W", -11) = -1 +s.lastIndexOf ("W", -10) = -1 +s.lastIndexOf ("W", -9) = -1 +s.lastIndexOf ("W", -8) = -1 +s.lastIndexOf ("W", -7) = -1 +s.lastIndexOf ("W", -6) = -1 +s.lastIndexOf ("W", -5) = -1 +s.lastIndexOf ("W", -4) = -1 +s.lastIndexOf ("W", -3) = -1 +s.lastIndexOf ("W", -2) = -1 +s.lastIndexOf ("W", -1) = -1 +s.lastIndexOf ("W", 0) = -1 +s.lastIndexOf ("W", 1) = -1 +s.lastIndexOf ("W", 2) = -1 +s.lastIndexOf ("W", 3) = -1 +s.lastIndexOf ("W", 4) = -1 +s.lastIndexOf ("W", 5) = -1 +s.lastIndexOf ("W", 6) = 6 +s.lastIndexOf ("W", 7) = 6 +s.lastIndexOf ("W", 8) = 6 +s.lastIndexOf ("W", 9) = 6 +s.lastIndexOf ("W", 10) = 6 +s.lastIndexOf ("W", 11) = 6 +s.lastIndexOf ("W", 12) = 6 +s.lastIndexOf ("W", 13) = 6 +s.lastIndexOf ("W", 14) = 6 +s.lastIndexOf ("o") = 7 +s.lastIndexOf ("o", -15) = -1 +s.lastIndexOf ("o", -14) = -1 +s.lastIndexOf ("o", -13) = -1 +s.lastIndexOf ("o", -12) = -1 +s.lastIndexOf ("o", -11) = -1 +s.lastIndexOf ("o", -10) = -1 +s.lastIndexOf ("o", -9) = -1 +s.lastIndexOf ("o", -8) = -1 +s.lastIndexOf ("o", -7) = -1 +s.lastIndexOf ("o", -6) = -1 +s.lastIndexOf ("o", -5) = -1 +s.lastIndexOf ("o", -4) = -1 +s.lastIndexOf ("o", -3) = -1 +s.lastIndexOf ("o", -2) = -1 +s.lastIndexOf ("o", -1) = -1 +s.lastIndexOf ("o", 0) = -1 +s.lastIndexOf ("o", 1) = -1 +s.lastIndexOf ("o", 2) = -1 +s.lastIndexOf ("o", 3) = -1 +s.lastIndexOf ("o", 4) = 4 +s.lastIndexOf ("o", 5) = 4 +s.lastIndexOf ("o", 6) = 4 +s.lastIndexOf ("o", 7) = 7 +s.lastIndexOf ("o", 8) = 7 +s.lastIndexOf ("o", 9) = 7 +s.lastIndexOf ("o", 10) = 7 +s.lastIndexOf ("o", 11) = 7 +s.lastIndexOf ("o", 12) = 7 +s.lastIndexOf ("o", 13) = 7 +s.lastIndexOf ("o", 14) = 7 +s.lastIndexOf ("r") = 8 +s.lastIndexOf ("r", -15) = -1 +s.lastIndexOf ("r", -14) = -1 +s.lastIndexOf ("r", -13) = -1 +s.lastIndexOf ("r", -12) = -1 +s.lastIndexOf ("r", -11) = -1 +s.lastIndexOf ("r", -10) = -1 +s.lastIndexOf ("r", -9) = -1 +s.lastIndexOf ("r", -8) = -1 +s.lastIndexOf ("r", -7) = -1 +s.lastIndexOf ("r", -6) = -1 +s.lastIndexOf ("r", -5) = -1 +s.lastIndexOf ("r", -4) = -1 +s.lastIndexOf ("r", -3) = -1 +s.lastIndexOf ("r", -2) = -1 +s.lastIndexOf ("r", -1) = -1 +s.lastIndexOf ("r", 0) = -1 +s.lastIndexOf ("r", 1) = -1 +s.lastIndexOf ("r", 2) = -1 +s.lastIndexOf ("r", 3) = -1 +s.lastIndexOf ("r", 4) = -1 +s.lastIndexOf ("r", 5) = -1 +s.lastIndexOf ("r", 6) = -1 +s.lastIndexOf ("r", 7) = -1 +s.lastIndexOf ("r", 8) = 8 +s.lastIndexOf ("r", 9) = 8 +s.lastIndexOf ("r", 10) = 8 +s.lastIndexOf ("r", 11) = 8 +s.lastIndexOf ("r", 12) = 8 +s.lastIndexOf ("r", 13) = 8 +s.lastIndexOf ("r", 14) = 8 +s.lastIndexOf ("l") = 9 +s.lastIndexOf ("l", -15) = -1 +s.lastIndexOf ("l", -14) = -1 +s.lastIndexOf ("l", -13) = -1 +s.lastIndexOf ("l", -12) = -1 +s.lastIndexOf ("l", -11) = -1 +s.lastIndexOf ("l", -10) = -1 +s.lastIndexOf ("l", -9) = -1 +s.lastIndexOf ("l", -8) = -1 +s.lastIndexOf ("l", -7) = -1 +s.lastIndexOf ("l", -6) = -1 +s.lastIndexOf ("l", -5) = -1 +s.lastIndexOf ("l", -4) = -1 +s.lastIndexOf ("l", -3) = -1 +s.lastIndexOf ("l", -2) = -1 +s.lastIndexOf ("l", -1) = -1 +s.lastIndexOf ("l", 0) = -1 +s.lastIndexOf ("l", 1) = -1 +s.lastIndexOf ("l", 2) = 2 +s.lastIndexOf ("l", 3) = 3 +s.lastIndexOf ("l", 4) = 3 +s.lastIndexOf ("l", 5) = 3 +s.lastIndexOf ("l", 6) = 3 +s.lastIndexOf ("l", 7) = 3 +s.lastIndexOf ("l", 8) = 3 +s.lastIndexOf ("l", 9) = 9 +s.lastIndexOf ("l", 10) = 9 +s.lastIndexOf ("l", 11) = 9 +s.lastIndexOf ("l", 12) = 9 +s.lastIndexOf ("l", 13) = 9 +s.lastIndexOf ("l", 14) = 9 +s.lastIndexOf ("d") = 10 +s.lastIndexOf ("d", -15) = -1 +s.lastIndexOf ("d", -14) = -1 +s.lastIndexOf ("d", -13) = -1 +s.lastIndexOf ("d", -12) = -1 +s.lastIndexOf ("d", -11) = -1 +s.lastIndexOf ("d", -10) = -1 +s.lastIndexOf ("d", -9) = -1 +s.lastIndexOf ("d", -8) = -1 +s.lastIndexOf ("d", -7) = -1 +s.lastIndexOf ("d", -6) = -1 +s.lastIndexOf ("d", -5) = -1 +s.lastIndexOf ("d", -4) = -1 +s.lastIndexOf ("d", -3) = -1 +s.lastIndexOf ("d", -2) = -1 +s.lastIndexOf ("d", -1) = -1 +s.lastIndexOf ("d", 0) = -1 +s.lastIndexOf ("d", 1) = -1 +s.lastIndexOf ("d", 2) = -1 +s.lastIndexOf ("d", 3) = -1 +s.lastIndexOf ("d", 4) = -1 +s.lastIndexOf ("d", 5) = -1 +s.lastIndexOf ("d", 6) = -1 +s.lastIndexOf ("d", 7) = -1 +s.lastIndexOf ("d", 8) = -1 +s.lastIndexOf ("d", 9) = -1 +s.lastIndexOf ("d", 10) = 10 +s.lastIndexOf ("d", 11) = 10 +s.lastIndexOf ("d", 12) = 10 +s.lastIndexOf ("d", 13) = 10 +s.lastIndexOf ("d", 14) = 10 diff --git a/test/trace/string-lastIndexOf.as b/test/trace/string-lastIndexOf.as new file mode 100644 index 0000000..f0706bf --- /dev/null +++ b/test/trace/string-lastIndexOf.as @@ -0,0 +1,13 @@ +// makeswf -v 7 -s 200x150 -r 1 -o string-lastIndexOf.swf string-lastIndexOf.as + +trace ("test String.lastIndexOf"); +s = "Hello World"; + +for (j = 0; j < 11; j++) { + trace ("s.lastIndexOf (\""+ s.substr (j, 1) + "\") = " + s.lastIndexOf (s.substr (j, 1))); + for (i = -15; i < 15; i++) { + trace ("s.lastIndexOf (\""+ s.substr (j, 1) + "\", " + i + ") = " + s.lastIndexOf (s.substr (j, 1), i)); + } +}; + +loadMovie ("FSCommand:quit", ""); diff-tree ef88186bc8874a97c155d0b2cbabe772021f8d6e (from 31e0d8728000101a68e587b3f029e1ac42d3e151) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 19:22:26 2007 +0200 implement String.lastIndexOf diff --git a/libswfdec/swfdec_as_string.c b/libswfdec/swfdec_as_string.c index 5ad6425..5cb4d18 100644 --- a/libswfdec/swfdec_as_string.c +++ b/libswfdec/swfdec_as_string.c @@ -77,6 +77,33 @@ swfdec_as_str_nth_char (const char *s, g } static void +swfdec_as_string_lastIndexOf (SwfdecAsContext *cx, SwfdecAsObject *object, + guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) +{ + SwfdecAsString *string = SWFDEC_AS_STRING (object); + gsize len; + const char *s; + + s = swfdec_as_value_to_string (object->context, &argv[0]); + if (argc == 2) { + int offset = swfdec_as_value_to_integer (object->context, &argv[1]); + if (offset < 0) { + SWFDEC_AS_VALUE_SET_INT (ret, -1); + return; + } + len = g_utf8_offset_to_pointer (string->string, offset + 1) - string->string; + } else { + len = G_MAXSIZE; + } + s = g_strrstr_len (string->string, len, s); + if (s) { + SWFDEC_AS_VALUE_SET_INT (ret, g_utf8_pointer_to_offset (string->string, s)); + } else { + SWFDEC_AS_VALUE_SET_INT (ret, -1); + } +} + +static void swfdec_as_string_indexOf (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret) { @@ -262,7 +289,6 @@ charAt(index:Number) : String charCodeAt(index:Number) : Number concat(value:Object) : String indexOf(value:String, [startIndex:Number]) : Number -lastIndexOf(value:String, [startIndex:Number]) : Number slice(start:Number, end:Number) : String split(delimiter:String, [limit:Number]) : Array #endif @@ -724,6 +750,7 @@ swfdec_as_string_init_context (SwfdecAsC &val, SWFDEC_AS_VARIABLE_HIDDEN | SWFDEC_AS_VARIABLE_PERMANENT); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_charAt, SWFDEC_TYPE_AS_STRING, swfdec_as_string_charAt, 1); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_indexOf, SWFDEC_TYPE_AS_STRING, swfdec_as_string_indexOf, 1); + swfdec_as_object_add_function (proto, SWFDEC_AS_STR_lastIndexOf, SWFDEC_TYPE_AS_STRING, swfdec_as_string_lastIndexOf, 1); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_charCodeAt, SWFDEC_TYPE_AS_STRING, swfdec_as_string_charCodeAt, 1); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_substr, SWFDEC_TYPE_AS_STRING, swfdec_as_string_substr, 1); swfdec_as_object_add_function (proto, SWFDEC_AS_STR_substring, SWFDEC_TYPE_AS_STRING, swfdec_as_string_substring, 1); diff --git a/libswfdec/swfdec_as_strings.c b/libswfdec/swfdec_as_strings.c index ce5a4de..04b0790 100644 --- a/libswfdec/swfdec_as_strings.c +++ b/libswfdec/swfdec_as_strings.c @@ -253,6 +253,7 @@ const char swfdec_as_strings[] = SWFDEC_AS_CONSTANT_STRING ("_bytesLoaded") SWFDEC_AS_CONSTANT_STRING ("_bytesTotal") SWFDEC_AS_CONSTANT_STRING ("loaded") + SWFDEC_AS_CONSTANT_STRING ("lastIndexOf") /* add more here */ ; diff-tree 31e0d8728000101a68e587b3f029e1ac42d3e151 (from 38e1f2d4419d640f59ff8301b3964c9a6553ff56) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:39:20 2007 +0200 add -undeclared.txt file, too diff --git a/doc/.gitignore b/doc/.gitignore index 03ea280..6458a86 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -15,6 +15,7 @@ swfdec-decl-list.txt swfdec-decl-list.txt.bak swfdec-decl.txt swfdec-decl.txt.bak +swfdec-undeclared.txt swfdec-undocumented.txt swfdec-unused.txt swfdec.args diff-tree 38e1f2d4419d640f59ff8301b3964c9a6553ff56 (from parents) Merge: 4b43fc980d4c5e259164a74caa6f448a10f6dde6 e88bcd3f69ead176574bab53af1872da1cdd99ea Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:24:48 2007 +0200 Merge branch 'master' of ssh://company at git.freedesktop.org/git/swfdec/swfdec diff-tree 4b43fc980d4c5e259164a74caa6f448a10f6dde6 (from 4c78791e242c5cc28d1178575f615f411b5e4288) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:24:14 2007 +0200 document diff --git a/libswfdec-gtk/swfdec_gtk_keys.c b/libswfdec-gtk/swfdec_gtk_keys.c index b192e64..69e0a6e 100644 --- a/libswfdec-gtk/swfdec_gtk_keys.c +++ b/libswfdec-gtk/swfdec_gtk_keys.c @@ -58,6 +58,16 @@ SWFDEC_KEY_META_R 116 SWFDEC_KEY_MENU 117 */ +/** + * swfdec_gtk_keycode_from_hardware_keycode: + * @hardware_keycode: a hardware keycode sent from the X server + * + * Tries to transform an X hardware keycode to the corresponding #SwfdecKey. + * This is a utility function for cases where key events need to be transformed + * manually. + * + * Returns: the corresponding key code as used in Flash. + **/ guint swfdec_gtk_keycode_from_hardware_keycode (guint hardware_keycode) { diff-tree 4c78791e242c5cc28d1178575f615f411b5e4288 (from 667ea6dda5f05ae4a7c1a758c9006d4b5fccd358) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:17:21 2007 +0200 document the SwfdecScript object diff --git a/libswfdec/swfdec_script.c b/libswfdec/swfdec_script.c index 90f3e2a..0465d9d 100644 --- a/libswfdec/swfdec_script.c +++ b/libswfdec/swfdec_script.c @@ -27,6 +27,14 @@ #include "swfdec_as_interpret.h" #include "swfdec_debug.h" +/** + * SwfdecScript: + * + * This is the object used for code to be executed by Swfdec. Scripts are + * independant from the #SwfdecAsContext they are executed in, so you can + * execute the same script in multiple contexts. + */ + /* Define this to get SWFDEC_WARN'd about missing properties of objects. * This can be useful to find out about unimplemented native properties, * but usually just causes a lot of spam. */ diff-tree 667ea6dda5f05ae4a7c1a758c9006d4b5fccd358 (from 3be8531c56861fd5f813a4ebd38a436029b937e2) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:17:05 2007 +0200 add SwfdecKey docs diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c index 98a1086..6164de5 100644 --- a/libswfdec/swfdec_player.c +++ b/libswfdec/swfdec_player.c @@ -128,6 +128,12 @@ * movie's size. */ +/** + * SwfdecKey: + * + * Lists all known key codes in Swfdec. + */ + /*** Timeouts ***/ static SwfdecTick diff-tree 3be8531c56861fd5f813a4ebd38a436029b937e2 (from a9fd2dfe41f7e7b7fc801e9f41ffb088eae98f1b) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:16:54 2007 +0200 fix documentation diff --git a/libswfdec/swfdec_as_debugger.c b/libswfdec/swfdec_as_debugger.c index e0c89f8..d9f34f3 100644 --- a/libswfdec/swfdec_as_debugger.c +++ b/libswfdec/swfdec_as_debugger.c @@ -47,7 +47,7 @@ G_DEFINE_TYPE (SwfdecAsDebugger, swfdec_ */ /** - * SwfdecAsDebuggerClass + * SwfdecAsDebuggerClass: * @add: Called whenever an object is added to the garbage collection engine * using swfdec_as_object_add () * @remove: Called whenever an object is about to be collected by the garbage @@ -55,9 +55,9 @@ G_DEFINE_TYPE (SwfdecAsDebugger, swfdec_ * @step: This function is called everytime just before a bytecode is executed * by the script engine. So it's very powerful, but can also slow down * the script engine a lot. - * @start_frame: Called after a new #SwfdecAsFrame has been initialized and + * @enter_frame: Called after a new #SwfdecAsFrame has been initialized and * pushed to the top of the execution stack. - * @finish_frame: Called just after a #SwfdecAsFrame has been removed from the + * @leave_frame: Called just after a #SwfdecAsFrame has been removed from the * execution stack. The return value has not been forwarded to * the parent when this function is called. * @set_variable: Called whenever swfdec_as_object_set_variable() is called, diff --git a/libswfdec/swfdec_as_debugger.h b/libswfdec/swfdec_as_debugger.h index ed1bf52..2e2c0e7 100644 --- a/libswfdec/swfdec_as_debugger.h +++ b/libswfdec/swfdec_as_debugger.h @@ -41,8 +41,10 @@ struct _SwfdecAsDebugger { }; struct _SwfdecAsDebuggerClass { + /*< private >*/ GObjectClass object_class; + /*< public >*/ /* a new object was added to the GC */ void (* add) (SwfdecAsDebugger * debugger, SwfdecAsContext * context, diff-tree a9fd2dfe41f7e7b7fc801e9f41ffb088eae98f1b (from f1b1b8fd416ed0bc2319d66aa12a08053adb4966) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 16:16:32 2007 +0200 name the debugger section debugger, not frame and actually include it diff --git a/doc/swfdec-docs.sgml b/doc/swfdec-docs.sgml index 0f4c82a..a8ae8dd 100644 --- a/doc/swfdec-docs.sgml +++ b/doc/swfdec-docs.sgml @@ -30,5 +30,6 @@ <xi:include href="xml/SwfdecAsArray.xml"/> <xi:include href="xml/SwfdecAsFunction.xml"/> <xi:include href="xml/SwfdecAsFrame.xml"/> + <xi:include href="xml/SwfdecAsDebugger.xml"/> </chapter> </book> diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt index 5f29752..6ad2114 100644 --- a/doc/swfdec-sections.txt +++ b/doc/swfdec-sections.txt @@ -398,8 +398,8 @@ SWFDEC_TYPE_AS_FRAME </SECTION> <SECTION> -<FILE>SwfdecAsFrame</FILE> -<TITLE>SwfdecAsFrame</TITLE> +<FILE>SwfdecAsDebugger</FILE> +<TITLE>SwfdecAsDebugger</TITLE> SwfdecAsDebugger SwfdecAsDebuggerClass SwfdecScript diff-tree f1b1b8fd416ed0bc2319d66aa12a08053adb4966 (from 6cb045af97e7aabf099301ad99e13be3766391c9) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 15:50:06 2007 +0200 change function names everywhere Also add docs for the debugger vfuncs diff --git a/libswfdec/swfdec_as_debugger.c b/libswfdec/swfdec_as_debugger.c index eb03b5b..e0c89f8 100644 --- a/libswfdec/swfdec_as_debugger.c +++ b/libswfdec/swfdec_as_debugger.c @@ -52,12 +52,19 @@ G_DEFINE_TYPE (SwfdecAsDebugger, swfdec_ * using swfdec_as_object_add () * @remove: Called whenever an object is about to be collected by the garbage * collector. - * @step: This function is called everytime just before a bytecode is executed by - * the script engine. So it's very powerful, but can also slow down the - * script engine a lot. - * @start_frame: - * @finish_frame: - * @set_variable: + * @step: This function is called everytime just before a bytecode is executed + * by the script engine. So it's very powerful, but can also slow down + * the script engine a lot. + * @start_frame: Called after a new #SwfdecAsFrame has been initialized and + * pushed to the top of the execution stack. + * @finish_frame: Called just after a #SwfdecAsFrame has been removed from the + * execution stack. The return value has not been forwarded to + * the parent when this function is called. + * @set_variable: Called whenever swfdec_as_object_set_variable() is called, + * before actually setting the variable. This function is also + * called when variables are set by internal code, not just when + * interpreting scripts. It also doesn't matter if setting the + * variable will succeed. * * The class object for the debugger. You need to override these functions to * get useful functionality for the debugger. diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c index b7cb037..52745bd 100644 --- a/libswfdec/swfdec_as_frame.c +++ b/libswfdec/swfdec_as_frame.c @@ -430,8 +430,8 @@ swfdec_as_frame_return (SwfdecAsFrame *f if (context->debugger) { SwfdecAsDebuggerClass *klass = SWFDEC_AS_DEBUGGER_GET_CLASS (context->debugger); - if (klass->finish_frame) - klass->finish_frame (context->debugger, context, frame, &retval); + if (klass->leave_frame) + klass->leave_frame (context->debugger, context, frame, &retval); } /* set return value */ if (frame->return_value) { @@ -704,8 +704,8 @@ out: if (context->debugger) { SwfdecAsDebuggerClass *klass = SWFDEC_AS_DEBUGGER_GET_CLASS (context->debugger); - if (klass->start_frame) - klass->start_frame (context->debugger, context, frame); + if (klass->enter_frame) + klass->enter_frame (context->debugger, context, frame); } } diff-tree 6cb045af97e7aabf099301ad99e13be3766391c9 (from c1f8859c2a1924a2c7b35b573ee7ddb5d9dcf12e) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 15:42:53 2007 +0200 rename "start/finish frame" to "enter/leave frame" diff --git a/libswfdec/swfdec_as_debugger.c b/libswfdec/swfdec_as_debugger.c index ac0c6a4..eb03b5b 100644 --- a/libswfdec/swfdec_as_debugger.c +++ b/libswfdec/swfdec_as_debugger.c @@ -48,13 +48,16 @@ G_DEFINE_TYPE (SwfdecAsDebugger, swfdec_ /** * SwfdecAsDebuggerClass + * @add: Called whenever an object is added to the garbage collection engine + * using swfdec_as_object_add () + * @remove: Called whenever an object is about to be collected by the garbage + * collector. * @step: This function is called everytime just before a bytecode is executed by * the script engine. So it's very powerful, but can also slow down the * script engine a lot. - * @frame_change: Called whenever the current frame changes. This happens either - * when calling a function or when a function call returns. The - * function call is called for any type of frame, even calls to - * native functions. + * @start_frame: + * @finish_frame: + * @set_variable: * * The class object for the debugger. You need to override these functions to * get useful functionality for the debugger. diff --git a/libswfdec/swfdec_as_debugger.h b/libswfdec/swfdec_as_debugger.h index 61aaae6..ed1bf52 100644 --- a/libswfdec/swfdec_as_debugger.h +++ b/libswfdec/swfdec_as_debugger.h @@ -55,11 +55,11 @@ struct _SwfdecAsDebuggerClass { void (* step) (SwfdecAsDebugger * debugger, SwfdecAsContext * context); /* called after adding a frame from the function stack */ - void (* start_frame) (SwfdecAsDebugger * debugger, + void (* enter_frame) (SwfdecAsDebugger * debugger, SwfdecAsContext * context, SwfdecAsFrame * frame); /* called after removing a frame from the function stack */ - void (* finish_frame)(SwfdecAsDebugger * debugger, + void (* leave_frame) (SwfdecAsDebugger * debugger, SwfdecAsContext * context, SwfdecAsFrame * frame, const SwfdecAsValue * return_value); diff --git a/vivified/core/vivi_breakpoint.c b/vivified/core/vivi_breakpoint.c index 11ae4bf..423bf7f 100644 --- a/vivified/core/vivi_breakpoint.c +++ b/vivified/core/vivi_breakpoint.c @@ -39,19 +39,19 @@ vivi_breakpoint_step (ViviDebugger *debu } static gboolean -vivi_breakpoint_start_frame (ViviDebugger *debugger, SwfdecAsFrame *frame, ViviBreakpoint *breakpoint) +vivi_breakpoint_enter_frame (ViviDebugger *debugger, SwfdecAsFrame *frame, ViviBreakpoint *breakpoint) { SwfdecAsObject *obj = SWFDEC_AS_OBJECT (breakpoint); SwfdecAsValue val; SwfdecAsValue retval; SWFDEC_AS_VALUE_SET_OBJECT (&val, vivi_wrap_object (VIVI_APPLICATION (obj->context), SWFDEC_AS_OBJECT (frame))); - swfdec_as_object_call (obj, swfdec_as_context_get_string (obj->context, "onStartFrame"), 1, &val, &retval); + swfdec_as_object_call (obj, swfdec_as_context_get_string (obj->context, "onEnterFrame"), 1, &val, &retval); return swfdec_as_value_to_boolean (obj->context, &retval); } static gboolean -vivi_breakpoint_finish_frame (ViviDebugger *debugger, SwfdecAsFrame *frame, const SwfdecAsValue *ret, ViviBreakpoint *breakpoint) +vivi_breakpoint_leave_frame (ViviDebugger *debugger, SwfdecAsFrame *frame, const SwfdecAsValue *ret, ViviBreakpoint *breakpoint) { SwfdecAsObject *obj = SWFDEC_AS_OBJECT (breakpoint); SwfdecAsValue vals[2]; @@ -59,7 +59,7 @@ vivi_breakpoint_finish_frame (ViviDebugg SWFDEC_AS_VALUE_SET_OBJECT (&vals[0], vivi_wrap_object (VIVI_APPLICATION (obj->context), SWFDEC_AS_OBJECT (frame))); vivi_wrap_value (VIVI_APPLICATION (obj->context), &vals[1], ret); - swfdec_as_object_call (obj, swfdec_as_context_get_string (obj->context, "onStartFrame"), 2, vals, &retval); + swfdec_as_object_call (obj, swfdec_as_context_get_string (obj->context, "onLeaveFrame"), 2, vals, &retval); return swfdec_as_value_to_boolean (obj->context, &retval); } @@ -85,8 +85,8 @@ static const struct { } events[] = { { NULL, NULL, NULL }, /* invalid */ { "onCommand", "step", G_CALLBACK (vivi_breakpoint_step) }, - { "onStartFrame", "start-frame", G_CALLBACK (vivi_breakpoint_start_frame) }, - { "onExitFrame", "finish-frame", G_CALLBACK (vivi_breakpoint_finish_frame) }, + { "onEnterFrame", "enter-frame", G_CALLBACK (vivi_breakpoint_enter_frame) }, + { "onLeaveFrame", "leave-frame", G_CALLBACK (vivi_breakpoint_leave_frame) }, { "onSetVariable", "set-variable", G_CALLBACK (vivi_breakpoint_set_variable) } }; diff --git a/vivified/core/vivi_debugger.c b/vivified/core/vivi_debugger.c index 68a7b89..b65392f 100644 --- a/vivified/core/vivi_debugger.c +++ b/vivified/core/vivi_debugger.c @@ -31,8 +31,8 @@ enum { ADD, REMOVE, STEP, - START_FRAME, - FINISH_FRAME, + ENTER_FRAME, + LEAVE_FRAME, SET_VARIABLE, LAST_SIGNAL }; @@ -133,23 +133,23 @@ vivi_debugger_step (SwfdecAsDebugger *de } static void -vivi_debugger_start_frame (SwfdecAsDebugger *debugger, SwfdecAsContext *context, SwfdecAsFrame *frame) +vivi_debugger_enter_frame (SwfdecAsDebugger *debugger, SwfdecAsContext *context, SwfdecAsFrame *frame) { gboolean retval = FALSE; - g_signal_emit (debugger, signals[START_FRAME], 0, frame, &retval); + g_signal_emit (debugger, signals[ENTER_FRAME], 0, frame, &retval); if (retval) vivi_debugger_break (VIVI_DEBUGGER (debugger)); } static void -vivi_debugger_finish_frame (SwfdecAsDebugger *debugger, SwfdecAsContext *context, +vivi_debugger_leave_frame (SwfdecAsDebugger *debugger, SwfdecAsContext *context, SwfdecAsFrame *frame, const SwfdecAsValue *ret) { gboolean retval = FALSE; - g_signal_emit (debugger, signals[FINISH_FRAME], 0, frame, ret, &retval); + g_signal_emit (debugger, signals[LEAVE_FRAME], 0, frame, ret, &retval); if (retval) vivi_debugger_break (VIVI_DEBUGGER (debugger)); @@ -184,10 +184,10 @@ vivi_debugger_class_init (ViviDebuggerCl signals[STEP] = g_signal_new ("step", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, vivi_accumulate_or, NULL, vivi_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); - signals[START_FRAME] = g_signal_new ("start-frame", G_TYPE_FROM_CLASS (klass), + signals[ENTER_FRAME] = g_signal_new ("enter-frame", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, vivi_accumulate_or, NULL, vivi_marshal_BOOLEAN__OBJECT, G_TYPE_BOOLEAN, 1, SWFDEC_TYPE_AS_FRAME); - signals[FINISH_FRAME] = g_signal_new ("finish-frame", G_TYPE_FROM_CLASS (klass), + signals[LEAVE_FRAME] = g_signal_new ("leave-frame", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, vivi_accumulate_or, NULL, vivi_marshal_BOOLEAN__OBJECT_POINTER, G_TYPE_BOOLEAN, 2, SWFDEC_TYPE_AS_FRAME, G_TYPE_POINTER); signals[SET_VARIABLE] = g_signal_new ("set-variable", G_TYPE_FROM_CLASS (klass), @@ -197,8 +197,8 @@ vivi_debugger_class_init (ViviDebuggerCl debugger_class->add = vivi_debugger_add; debugger_class->remove = vivi_debugger_remove; debugger_class->step = vivi_debugger_step; - debugger_class->start_frame = vivi_debugger_start_frame; - debugger_class->finish_frame = vivi_debugger_finish_frame; + debugger_class->enter_frame = vivi_debugger_enter_frame; + debugger_class->leave_frame = vivi_debugger_leave_frame; debugger_class->set_variable = vivi_debugger_set_variable; } diff --git a/vivified/core/vivi_initialize.as b/vivified/core/vivi_initialize.as index 8245fb1..a6537bf 100644 --- a/vivified/core/vivi_initialize.as +++ b/vivified/core/vivi_initialize.as @@ -76,7 +76,7 @@ Commands.add = function (name) { return undefined; } var ret = new Breakpoint (); - ret.onStartFrame = function (frame) { + ret.onEnterFrame = function (frame) { if (frame.name != name) return false; diff-tree c1f8859c2a1924a2c7b35b573ee7ddb5d9dcf12e (from ce43b8df731dc8a0be767f5ff04d932003fa0d6f) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 14:25:56 2007 +0200 that function is gone now diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt index b6270bd..5f29752 100644 --- a/doc/swfdec-sections.txt +++ b/doc/swfdec-sections.txt @@ -349,7 +349,6 @@ SWFDEC_TYPE_AS_ARRAY SwfdecAsFunction SwfdecAsNative SwfdecAsNativeFunction -swfdec_as_function_create swfdec_as_function_call swfdec_as_native_function_new swfdec_as_native_function_set_construct_type diff-tree ce43b8df731dc8a0be767f5ff04d932003fa0d6f (from 0a375ca269392d9c4d0516bdaaef260871f6dca6) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 14:25:41 2007 +0200 doc fixes diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c index 452015e..3fa05a0 100644 --- a/libswfdec/swfdec_as_object.c +++ b/libswfdec/swfdec_as_object.c @@ -563,7 +563,7 @@ swfdec_as_object_collect (SwfdecAsObject * swfdec_as_object_set_variable_and_flags() **/ /** - * swfdec_as_object_set_variable: + * swfdec_as_object_set_variable_and_flags: * @object: a #SwfdecAsObject * @variable: garbage-collected name of the variable to set * @value: value to set the variable to @@ -790,7 +790,7 @@ swfdec_as_object_add_function (SwfdecAsO } /** - * swfdec_as_object_add_function: + * swfdec_as_object_add_constructor: * @object: a #SwfdecAsObject * @name: name of the function. The string does not have to be * garbage-collected. diff-tree 0a375ca269392d9c4d0516bdaaef260871f6dca6 (from 73db1b2434693bb90e61ed2655f3d6a4e07fdeac) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 13:42:07 2007 +0200 get rid of unused symbols diff --git a/doc/Makefile.am b/doc/Makefile.am index 73c9cee..8f36b20 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -99,6 +99,7 @@ IGNORE_HFILES= \ swfdec_interval.h \ swfdec_js.h \ swfdec_listener.h \ + swfdec_load_object.h \ swfdec_loader_internal.h \ swfdec_loadertarget.h \ swfdec_marshal.h \ @@ -114,6 +115,7 @@ IGNORE_HFILES= \ swfdec_root_movie.h \ swfdec_root_sprite.h \ swfdec_script.h \ + swfdec_script_internal.h \ swfdec_scriptable.h \ swfdec_shape.h \ swfdec_sound.h \ diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt index 019380c..b6270bd 100644 --- a/doc/swfdec-sections.txt +++ b/doc/swfdec-sections.txt @@ -140,6 +140,7 @@ swfdec_buffer_queue_get_type <FILE>Enumerations</FILE> <TITLE>Enumerations</TITLE> SwfdecAsContextState +SwfdecAsDeleteReturn SwfdecLoaderDataType SwfdecLoaderRequest swfdec_loader_data_type_get_extension @@ -186,6 +187,7 @@ swfdec_gtk_widget_get_renderer swfdec_gtk_widget_uses_renderer swfdec_gtk_widget_set_renderer swfdec_gtk_widget_unset_renderer +swfdec_gtk_keycode_from_hardware_keycode <SUBSECTION Standard> swfdec_gtk_widget_get_type SwfdecGtkWidgetClass @@ -298,6 +300,7 @@ SwfdecAsVariableFlag swfdec_as_object_get_variable swfdec_as_object_get_variable_and_flags swfdec_as_object_set_variable +swfdec_as_object_set_variable_and_flags swfdec_as_object_add_variable swfdec_as_object_set_variable_flags swfdec_as_object_unset_variable_flags @@ -305,8 +308,10 @@ swfdec_as_object_delete_variable SwfdecAsVariableForeach swfdec_as_object_foreach swfdec_as_object_has_function +swfdec_as_object_run swfdec_as_object_call swfdec_as_object_add_function +swfdec_as_object_add_constructor swfdec_as_object_get_debug swfdec_as_object_resolve <SUBSECTION Standard> @@ -392,3 +397,19 @@ SWFDEC_IS_AS_FRAME SWFDEC_IS_AS_FRAME_CLASS SWFDEC_TYPE_AS_FRAME </SECTION> + +<SECTION> +<FILE>SwfdecAsFrame</FILE> +<TITLE>SwfdecAsFrame</TITLE> +SwfdecAsDebugger +SwfdecAsDebuggerClass +SwfdecScript +<SUBSECTION Standard> +swfdec_as_debugger_get_type +SWFDEC_AS_DEBUGGER +SWFDEC_AS_DEBUGGER_CLASS +SWFDEC_AS_DEBUGGER_GET_CLASS +SWFDEC_IS_AS_DEBUGGER +SWFDEC_IS_AS_DEBUGGER_CLASS +SWFDEC_TYPE_AS_DEBUGGER +</SECTION> diff-tree 73db1b2434693bb90e61ed2655f3d6a4e07fdeac (from 7046db0047d85395dce2ececee97f82ebc4181f2) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 13:31:32 2007 +0200 swfdec_xml_as.[ch] => swfdec_xml.[ch] _as files are supposed to contain native script functions exclusively diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am index e919822..0555968 100644 --- a/libswfdec/Makefile.am +++ b/libswfdec/Makefile.am @@ -110,7 +110,7 @@ libswfdec_ at SWFDEC_MAJORMINOR@_la_SOURCES swfdec_video.c \ swfdec_video_movie.c \ swfdec_video_movie_as.c \ - swfdec_xml_as.c + swfdec_xml.c libswfdec_ at SWFDEC_MAJORMINOR@_la_CFLAGS = \ $(GLOBAL_CFLAGS) $(CAIRO_CFLAGS) $(GLIB_CFLAGS) $(PANGO_CFLAGS) \ @@ -217,7 +217,7 @@ noinst_HEADERS = \ swfdec_utils.h \ swfdec_video.h \ swfdec_video_movie.h \ - swfdec_xml_as.h + swfdec_xml.h EXTRA_DIST = \ compiler.c \ diff --git a/libswfdec/swfdec_xml.c b/libswfdec/swfdec_xml.c new file mode 100644 index 0000000..1b1b657 --- /dev/null +++ b/libswfdec/swfdec_xml.c @@ -0,0 +1,67 @@ +/* Swfdec + * Copyright (C) 2007 Benjamin Otte <otte at gnome.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "swfdec_xml.h" +#include "swfdec_as_native_function.h" +#include "swfdec_as_object.h" +#include "swfdec_as_strings.h" +#include "swfdec_debug.h" +#include "swfdec_internal.h" +#include "swfdec_player_internal.h" + +G_DEFINE_TYPE (SwfdecXml, swfdec_xml, SWFDEC_TYPE_AS_OBJECT) + +static void +swfdec_xml_class_init (SwfdecXmlClass *klass) +{ +} + +static void +swfdec_xml_init (SwfdecXml *xml) +{ +} + +void +swfdec_xml_init_context (SwfdecPlayer *player, guint version) +{ + SwfdecAsContext *context; + SwfdecAsObject *xml, *proto; + SwfdecAsValue val; + + g_return_if_fail (SWFDEC_IS_PLAYER (player)); + + context = SWFDEC_AS_CONTEXT (player); + proto = swfdec_as_object_new_empty (context); + if (proto == NULL) + return; + xml = SWFDEC_AS_OBJECT (swfdec_as_object_add_constructor (context->global, + SWFDEC_AS_STR_XML, 0, SWFDEC_TYPE_XML, NULL, 0, proto)); + if (xml == NULL) + return; + /* set the right properties on the NetStream.prototype object */ + SWFDEC_AS_VALUE_SET_OBJECT (&val, xml); + swfdec_as_object_set_variable (proto, SWFDEC_AS_STR_constructor, &val); + SWFDEC_AS_VALUE_SET_OBJECT (&val, context->Object_prototype); + swfdec_as_object_set_variable (proto, SWFDEC_AS_STR___proto__, &val); +} + diff --git a/libswfdec/swfdec_xml.h b/libswfdec/swfdec_xml.h new file mode 100644 index 0000000..1681a8f --- /dev/null +++ b/libswfdec/swfdec_xml.h @@ -0,0 +1,51 @@ +/* Swfdec + * Copyright (C) 2007 Benjamin Otte <otte at gnome.org> + * 2007 Pekka Lampila <pekka.lampila at iki.fi> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +#ifndef _SWFDEC_XML_H_ +#define _SWFDEC_XML_H_ + +#include <libswfdec/swfdec_as_object.h> +#include <libswfdec/swfdec_types.h> +#include <libswfdec/swfdec_script.h> + +G_BEGIN_DECLS + +typedef struct _SwfdecXml SwfdecXml; +typedef struct _SwfdecXmlClass SwfdecXmlClass; + +#define SWFDEC_TYPE_XML (swfdec_xml_get_type()) +#define SWFDEC_IS_XML(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_XML)) +#define SWFDEC_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_XML)) +#define SWFDEC_XML(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_XML, SwfdecXml)) +#define SWFDEC_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_XML, SwfdecXmlClass)) +#define SWFDEC_XML_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_XML, SwfdecXmlClass)) + +struct _SwfdecXml { + SwfdecAsObject object; +}; + +struct _SwfdecXmlClass { + SwfdecAsObjectClass object_class; +}; + +GType swfdec_xml_get_type (void); + +G_END_DECLS +#endif diff --git a/libswfdec/swfdec_xml_as.c b/libswfdec/swfdec_xml_as.c deleted file mode 100644 index 76e420d..0000000 --- a/libswfdec/swfdec_xml_as.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Swfdec - * Copyright (C) 2007 Benjamin Otte <otte at gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "swfdec_xml_as.h" -#include "swfdec_as_native_function.h" -#include "swfdec_as_object.h" -#include "swfdec_as_strings.h" -#include "swfdec_debug.h" -#include "swfdec_internal.h" -#include "swfdec_player_internal.h" - -G_DEFINE_TYPE (SwfdecXml, swfdec_xml, SWFDEC_TYPE_AS_OBJECT) - -static void -swfdec_xml_class_init (SwfdecXmlClass *klass) -{ -} - -static void -swfdec_xml_init (SwfdecXml *xml) -{ -} - -void -swfdec_xml_init_context (SwfdecPlayer *player, guint version) -{ - SwfdecAsContext *context; - SwfdecAsObject *xml, *proto; - SwfdecAsValue val; - - g_return_if_fail (SWFDEC_IS_PLAYER (player)); - - context = SWFDEC_AS_CONTEXT (player); - proto = swfdec_as_object_new_empty (context); - if (proto == NULL) - return; - xml = SWFDEC_AS_OBJECT (swfdec_as_object_add_constructor (context->global, - SWFDEC_AS_STR_XML, 0, SWFDEC_TYPE_XML, NULL, 0, proto)); - if (xml == NULL) - return; - /* set the right properties on the NetStream.prototype object */ - SWFDEC_AS_VALUE_SET_OBJECT (&val, xml); - swfdec_as_object_set_variable (proto, SWFDEC_AS_STR_constructor, &val); - SWFDEC_AS_VALUE_SET_OBJECT (&val, context->Object_prototype); - swfdec_as_object_set_variable (proto, SWFDEC_AS_STR___proto__, &val); -} - diff --git a/libswfdec/swfdec_xml_as.h b/libswfdec/swfdec_xml_as.h deleted file mode 100644 index 1681a8f..0000000 --- a/libswfdec/swfdec_xml_as.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Swfdec - * Copyright (C) 2007 Benjamin Otte <otte at gnome.org> - * 2007 Pekka Lampila <pekka.lampila at iki.fi> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef _SWFDEC_XML_H_ -#define _SWFDEC_XML_H_ - -#include <libswfdec/swfdec_as_object.h> -#include <libswfdec/swfdec_types.h> -#include <libswfdec/swfdec_script.h> - -G_BEGIN_DECLS - -typedef struct _SwfdecXml SwfdecXml; -typedef struct _SwfdecXmlClass SwfdecXmlClass; - -#define SWFDEC_TYPE_XML (swfdec_xml_get_type()) -#define SWFDEC_IS_XML(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_XML)) -#define SWFDEC_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_XML)) -#define SWFDEC_XML(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_XML, SwfdecXml)) -#define SWFDEC_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_XML, SwfdecXmlClass)) -#define SWFDEC_XML_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_XML, SwfdecXmlClass)) - -struct _SwfdecXml { - SwfdecAsObject object; -}; - -struct _SwfdecXmlClass { - SwfdecAsObjectClass object_class; -}; - -GType swfdec_xml_get_type (void); - -G_END_DECLS -#endif diff-tree 7046db0047d85395dce2ececee97f82ebc4181f2 (from 8cccc48b18fd2f3ccdb6279a865f9252f6e6d16a) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 13:27:52 2007 +0200 get rid of swfdec_load_object_as.h THe stuff it was needed for is now done by the initialize script diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am index 1e5e8a5..e919822 100644 --- a/libswfdec/Makefile.am +++ b/libswfdec/Makefile.am @@ -191,7 +191,6 @@ noinst_HEADERS = \ swfdec_internal.h \ swfdec_interval.h \ swfdec_load_object.h \ - swfdec_load_object_as.h \ swfdec_loader_internal.h \ swfdec_loadertarget.h \ swfdec_marshal.h \ diff --git a/libswfdec/swfdec_initialize.as b/libswfdec/swfdec_initialize.as index 502942e..f347a5f 100644 --- a/libswfdec/swfdec_initialize.as +++ b/libswfdec/swfdec_initialize.as @@ -123,6 +123,10 @@ LoadVars.prototype.getBytesTotal = funct ASSetPropFlags(LoadVars.prototype, null, 131); +/*** XML ***/ + +XML.prototype.load = ASnative (301, 0); + /*** OH THE HUMANITY ***/ o = null; diff --git a/libswfdec/swfdec_initialize.h b/libswfdec/swfdec_initialize.h index 7d5b5a0..8b74657 100644 --- a/libswfdec/swfdec_initialize.h +++ b/libswfdec/swfdec_initialize.h @@ -2,7 +2,7 @@ /* compiled from swfdec_initialize.as */ const unsigned char swfdec_initialize[] = { - 0x88, 0x64, 0x02, 0x42, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x88, 0x68, 0x02, 0x43, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x00, 0x41, 0x53, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x00, 0x41, 0x53, 0x53, 0x65, 0x74, 0x4E, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6F, 0x72, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x62, 0x72, 0x6F, 0x61, @@ -40,100 +40,102 @@ const unsigned char swfdec_initialize[] 0x00, 0x67, 0x65, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4C, 0x6F, 0x61, 0x64, 0x65, 0x64, 0x00, 0x5F, 0x62, 0x79, 0x74, 0x65, 0x73, 0x4C, 0x6F, 0x61, 0x64, 0x65, 0x64, 0x00, 0x67, 0x65, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6F, 0x74, 0x61, 0x6C, 0x00, 0x5F, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x54, 0x6F, 0x74, 0x61, 0x6C, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, 0x42, 0x72, 0x6F, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0D, 0x00, 0x4C, - 0x6F, 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x13, 0x00, 0x08, - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, - 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x02, 0x00, 0x08, - 0x03, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, - 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, - 0x96, 0x02, 0x00, 0x08, 0x05, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x96, - 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, - 0x96, 0x02, 0x00, 0x08, 0x08, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x96, 0x02, - 0x00, 0x08, 0x0A, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, - 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, 0x00, 0x8F, - 0x00, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x3C, - 0x96, 0x02, 0x00, 0x08, 0x0C, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4C, 0x1C, 0x50, 0x1D, 0x96, - 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, - 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x0C, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x49, 0x12, 0x9D, 0x02, 0x00, - 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, - 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, - 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, 0x00, 0x05, 0x00, 0x3E, - 0x4F, 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x9B, 0x07, 0x00, 0x00, - 0x01, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x13, 0x00, 0x08, - 0x04, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, - 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x05, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, - 0x04, 0x00, 0x08, 0x08, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x4F, 0x96, 0x02, - 0x00, 0x08, 0x10, 0x1C, 0x96, 0x09, 0x00, 0x08, 0x09, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x11, - 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x12, 0x08, 0x10, 0x1C, 0x96, - 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x4F, 0x96, 0x08, 0x00, 0x07, - 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x08, 0x13, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x14, 0x08, 0x15, 0x07, 0x12, 0x00, 0x00, 0x00, - 0x08, 0x16, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x14, 0x00, 0x00, 0x00, 0x08, 0x18, - 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x19, 0x07, 0x2E, 0x00, 0x00, 0x00, 0x08, 0x1A, 0x07, 0x28, - 0x00, 0x00, 0x00, 0x08, 0x1B, 0x07, 0x23, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x07, 0x0D, 0x00, 0x00, - 0x00, 0x08, 0x1D, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x24, 0x00, 0x00, 0x00, 0x08, - 0x1F, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x20, 0x07, 0x25, 0x00, 0x00, 0x00, 0x08, 0x21, 0x07, - 0x22, 0x00, 0x00, 0x00, 0x08, 0x22, 0x07, 0x21, 0x00, 0x00, 0x00, 0x08, 0x23, 0x07, 0x27, 0x00, - 0x00, 0x00, 0x08, 0x24, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, 0x20, 0x00, 0x00, 0x00, - 0x08, 0x26, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x26, 0x00, 0x00, 0x00, 0x07, 0x13, - 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x28, 0x07, 0x20, 0x03, 0x00, 0x00, 0x08, - 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x3D, 0x17, 0x96, 0x02, - 0x00, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, - 0x02, 0x00, 0x08, 0x0F, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, - 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x96, 0x09, - 0x00, 0x08, 0x29, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x2A, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, - 0x29, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, - 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, - 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, - 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x07, - 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x52, 0x17, - 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x29, 0x1C, 0x96, 0x07, 0x00, 0x07, - 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x2D, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x2A, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x52, 0x17, 0x96, 0x0E, - 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, 0x00, 0x08, 0x2D, 0x1C, - 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, - 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x32, 0x4F, - 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, - 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, - 0x96, 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, + 0x73, 0x54, 0x6F, 0x74, 0x61, 0x6C, 0x00, 0x58, 0x4D, 0x4C, 0x00, 0x9B, 0x12, 0x00, 0x41, 0x73, + 0x42, 0x72, 0x6F, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x9B, 0x0D, 0x00, 0x4C, 0x6F, 0x61, 0x64, 0x56, 0x61, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x96, 0x13, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, + 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, 0x96, 0x13, 0x00, 0x08, 0x02, 0x07, 0x01, 0x00, + 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x1D, + 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x0C, 0x00, 0x00, 0x00, + 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, + 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x05, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x78, + 0x00, 0x3C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x07, + 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x09, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x4F, + 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x9B, 0x07, 0x00, 0x00, 0x01, + 0x00, 0x78, 0x00, 0x8F, 0x00, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, + 0x08, 0x09, 0x4E, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x41, 0x96, 0x07, 0x00, 0x08, 0x0C, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x3C, 0x99, 0x02, 0x00, 0x09, 0x00, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4C, + 0x1C, 0x50, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x0D, 0x4E, 0x48, 0x12, 0x9D, 0x02, 0x00, 0x42, 0x00, 0x96, 0x02, 0x00, 0x08, + 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x49, + 0x12, 0x9D, 0x02, 0x00, 0x23, 0x00, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x0C, + 0x1C, 0x96, 0x07, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x0B, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x0E, 0x52, 0x17, 0x96, 0x02, 0x00, 0x05, 0x01, 0x3E, 0x99, 0x02, 0x00, 0x9C, 0xFF, 0x96, 0x02, + 0x00, 0x05, 0x00, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, + 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x6F, 0x00, 0x75, 0x00, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, + 0x96, 0x13, 0x00, 0x08, 0x04, 0x07, 0x0C, 0x00, 0x00, 0x00, 0x07, 0x65, 0x00, 0x00, 0x00, 0x07, + 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x04, + 0x00, 0x08, 0x05, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x05, 0x4E, 0x4F, 0x96, 0x02, 0x00, + 0x08, 0x10, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, + 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x10, 0x1C, 0x96, 0x09, 0x00, 0x08, 0x09, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x11, 0x40, 0x4F, 0x96, 0x09, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x08, 0x12, + 0x08, 0x10, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x4F, + 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x03, 0x1C, 0x96, 0x07, 0x00, 0x07, + 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x96, 0x8C, 0x00, 0x08, 0x14, 0x08, 0x15, 0x07, + 0x12, 0x00, 0x00, 0x00, 0x08, 0x16, 0x07, 0x08, 0x00, 0x00, 0x00, 0x08, 0x17, 0x07, 0x14, 0x00, + 0x00, 0x00, 0x08, 0x18, 0x07, 0x11, 0x00, 0x00, 0x00, 0x08, 0x19, 0x07, 0x2E, 0x00, 0x00, 0x00, + 0x08, 0x1A, 0x07, 0x28, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x07, 0x23, 0x00, 0x00, 0x00, 0x08, 0x1C, + 0x07, 0x0D, 0x00, 0x00, 0x00, 0x08, 0x1D, 0x07, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x1E, 0x07, 0x24, + 0x00, 0x00, 0x00, 0x08, 0x1F, 0x07, 0x2D, 0x00, 0x00, 0x00, 0x08, 0x20, 0x07, 0x25, 0x00, 0x00, + 0x00, 0x08, 0x21, 0x07, 0x22, 0x00, 0x00, 0x00, 0x08, 0x22, 0x07, 0x21, 0x00, 0x00, 0x00, 0x08, + 0x23, 0x07, 0x27, 0x00, 0x00, 0x00, 0x08, 0x24, 0x07, 0x10, 0x00, 0x00, 0x00, 0x08, 0x25, 0x07, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x26, 0x07, 0x09, 0x00, 0x00, 0x00, 0x08, 0x27, 0x07, 0x26, 0x00, + 0x00, 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x43, 0x1D, 0x96, 0x09, 0x00, 0x08, 0x28, 0x07, 0x20, + 0x03, 0x00, 0x00, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x3D, 0x17, 0x96, 0x02, 0x00, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, + 0x00, 0x00, 0x02, 0x08, 0x14, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, + 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, 0x29, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x2A, 0x40, 0x1D, + 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2B, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x05, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, + 0x00, 0x08, 0x29, 0x1C, 0x96, 0x13, 0x00, 0x08, 0x2C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x05, + 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, + 0x29, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, + 0x08, 0x0F, 0x52, 0x17, 0x96, 0x08, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x02, 0x08, 0x29, 0x1C, + 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x96, 0x09, 0x00, 0x08, + 0x2D, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x2A, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, + 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x03, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, + 0x52, 0x17, 0x96, 0x0E, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x2E, 0x07, 0x9A, 0x02, 0x00, + 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x3D, 0x17, + 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x04, 0x00, 0x08, + 0x31, 0x08, 0x32, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, + 0x96, 0x13, 0x00, 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, - 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, 0x00, 0x64, 0x00, 0x96, - 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, 0x4F, 0x96, 0x02, 0x00, - 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, 0x19, 0x00, 0x96, 0x09, - 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, - 0x52, 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x07, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52, 0x17, 0x96, - 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, - 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, - 0x96, 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x96, 0x03, 0x00, - 0x08, 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x46, 0x87, 0x01, 0x00, 0x00, 0x96, 0x01, - 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, 0x07, 0x04, 0x00, 0x3C, - 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x41, 0x00, - 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x07, 0x1C, 0x96, - 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, 0x02, 0x00, 0x08, 0x3C, - 0x47, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x4E, 0x96, 0x07, - 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x33, - 0x00, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x00, 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, - 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, - 0x3B, 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x3E, - 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, - 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, - 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, - 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x3E, 0x4F, 0x96, - 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, - 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, 0x17, 0x96, 0x03, 0x00, - 0x08, 0x10, 0x02, 0x1D, 0x00 + 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, 0x08, 0x34, 0x07, 0x03, 0x00, 0x00, 0x00, 0x07, 0x2D, + 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x02, 0x00, 0x08, + 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x35, 0x9B, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x36, 0x9B, 0x09, 0x00, 0x00, 0x01, 0x00, 0x73, 0x72, 0x63, + 0x00, 0x64, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x37, 0x05, 0x01, + 0x4F, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x12, 0x9D, 0x02, 0x00, + 0x19, 0x00, 0x96, 0x09, 0x00, 0x05, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x99, 0x02, 0x00, 0x2C, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, + 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, + 0x34, 0x52, 0x17, 0x96, 0x09, 0x00, 0x05, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x06, 0x1C, + 0x96, 0x02, 0x00, 0x08, 0x35, 0x52, 0x17, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, + 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x39, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0xB3, + 0x00, 0x96, 0x03, 0x00, 0x08, 0x3A, 0x02, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x46, 0x87, 0x01, + 0x00, 0x00, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, 0x02, 0x00, 0x91, 0x00, 0x96, 0x04, 0x00, 0x08, + 0x07, 0x04, 0x00, 0x3C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x1C, 0x96, 0x01, 0x00, 0x02, 0x49, 0x9D, + 0x02, 0x00, 0x41, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4C, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x3D, + 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x96, + 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, + 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x47, 0x1D, + 0x99, 0x02, 0x00, 0x33, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x47, 0x96, 0x02, + 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x08, 0x3B, 0x3D, 0x47, 0x1D, 0x99, 0x02, 0x00, 0x61, 0xFF, 0x96, 0x02, 0x00, + 0x08, 0x3A, 0x1C, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, + 0x4E, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x9B, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, + 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x3E, 0x4F, 0x96, 0x02, 0x00, 0x08, + 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x40, 0x9B, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x0D, 0x00, 0x96, 0x02, 0x00, 0x08, 0x06, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, + 0x4E, 0x3E, 0x4F, 0x96, 0x08, 0x00, 0x07, 0x83, 0x00, 0x00, 0x00, 0x02, 0x08, 0x2F, 0x1C, 0x96, + 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x07, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x13, 0x3D, + 0x17, 0x96, 0x02, 0x00, 0x08, 0x42, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x96, 0x13, 0x00, + 0x08, 0x33, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x2D, 0x01, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, + 0x00, 0x08, 0x01, 0x3D, 0x4F, 0x96, 0x03, 0x00, 0x08, 0x10, 0x02, 0x1D, 0x00 }; diff --git a/libswfdec/swfdec_load_object_as.h b/libswfdec/swfdec_load_object_as.h deleted file mode 100644 index f14f0e2..0000000 --- a/libswfdec/swfdec_load_object_as.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Swfdec - * Copyright (C) 2007 Benjamin Otte <otte at gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA - */ - -#ifndef _SWFDEC_LOADABLE_H_ -#define _SWFDEC_LOADABLE_H_ - -#include <libswfdec/swfdec.h> -#include <libswfdec/swfdec_as_object.h> - -G_BEGIN_DECLS - -void swfdec_load_object_load (SwfdecAsContext *cx, SwfdecAsObject *obj, guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval); - -G_END_DECLS -#endif diff --git a/libswfdec/swfdec_xml_as.c b/libswfdec/swfdec_xml_as.c index bf182a8..76e420d 100644 --- a/libswfdec/swfdec_xml_as.c +++ b/libswfdec/swfdec_xml_as.c @@ -28,7 +28,6 @@ #include "swfdec_debug.h" #include "swfdec_internal.h" #include "swfdec_player_internal.h" -#include "swfdec_load_object_as.h" G_DEFINE_TYPE (SwfdecXml, swfdec_xml, SWFDEC_TYPE_AS_OBJECT) @@ -60,8 +59,6 @@ swfdec_xml_init_context (SwfdecPlayer *p if (xml == NULL) return; /* set the right properties on the NetStream.prototype object */ - swfdec_as_object_add_function (proto, SWFDEC_AS_STR_load, SWFDEC_TYPE_XML, - swfdec_load_object_load, 0); SWFDEC_AS_VALUE_SET_OBJECT (&val, xml); swfdec_as_object_set_variable (proto, SWFDEC_AS_STR_constructor, &val); SWFDEC_AS_VALUE_SET_OBJECT (&val, context->Object_prototype); diff-tree 8cccc48b18fd2f3ccdb6279a865f9252f6e6d16a (from 93764e84c49f65d3c61706af57762ea9fa4c409d) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 12:54:57 2007 +0200 inclode swfdec_gtk_keys.h diff --git a/doc/Makefile.am b/doc/Makefile.am index c5766a9..73c9cee 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -132,6 +132,7 @@ IGNORE_HFILES= \ if WITH_GTK EXTRA_HFILES = \ + ../libswfdec-gtk/swfdec_gtk_keys.h \ ../libswfdec-gtk/swfdec_gtk_loader.h \ ../libswfdec-gtk/swfdec_gtk_player.h \ ../libswfdec-gtk/swfdec_gtk_widget.h diff-tree 93764e84c49f65d3c61706af57762ea9fa4c409d (from 1dee71176821844d903ac956b7ca03682b3ca428) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 12:54:37 2007 +0200 include swfdec_gtk_keys.h diff --git a/libswfdec-gtk/swfdec-gtk.h b/libswfdec-gtk/swfdec-gtk.h index 5615fa0..de4f723 100644 --- a/libswfdec-gtk/swfdec-gtk.h +++ b/libswfdec-gtk/swfdec-gtk.h @@ -20,6 +20,7 @@ #ifndef __SWFDEC_GTK_H__ #define __SWFDEC_GTK_H__ +#include <libswfdec-gtk/swfdec_gtk_keys.h> #include <libswfdec-gtk/swfdec_gtk_loader.h> #include <libswfdec-gtk/swfdec_gtk_player.h> #include <libswfdec-gtk/swfdec_gtk_widget.h> diff-tree 1dee71176821844d903ac956b7ca03682b3ca428 (from 10d4cc43986ce88bb43cb7bf96712846c962ed86) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 23 11:07:59 2007 +0200 It's a swfdec-gtk function, so use that prefix diff --git a/libswfdec-gtk/swfdec_gtk_keys.c b/libswfdec-gtk/swfdec_gtk_keys.c index 93593e1..b192e64 100644 --- a/libswfdec-gtk/swfdec_gtk_keys.c +++ b/libswfdec-gtk/swfdec_gtk_keys.c @@ -59,7 +59,7 @@ SWFDEC_KEY_MENU 117 */ guint -swfdec_keycode_from_hardware_keycode (guint hardware_keycode) +swfdec_gtk_keycode_from_hardware_keycode (guint hardware_keycode) { if (hardware_keycode >= G_N_ELEMENTS (flash_keycodes)) return 0; diff --git a/libswfdec-gtk/swfdec_gtk_keys.h b/libswfdec-gtk/swfdec_gtk_keys.h index bb3c80f..d9b985b 100644 --- a/libswfdec-gtk/swfdec_gtk_keys.h +++ b/libswfdec-gtk/swfdec_gtk_keys.h @@ -24,7 +24,7 @@ G_BEGIN_DECLS -guint swfdec_keycode_from_hardware_keycode (guint hardware_keycode); +guint swfdec_gtk_keycode_from_hardware_keycode (guint hardware_keycode); G_END_DECLS #endif diff --git a/libswfdec-gtk/swfdec_gtk_widget.c b/libswfdec-gtk/swfdec_gtk_widget.c index 94b7f31..8a87fad 100644 --- a/libswfdec-gtk/swfdec_gtk_widget.c +++ b/libswfdec-gtk/swfdec_gtk_widget.c @@ -147,7 +147,7 @@ swfdec_gtk_event_to_keycode (GdkEventKey return event->keyval - GDK_a + SWFDEC_KEY_A; /* last resort: try to translate the hardware keycode directly */ - ret = swfdec_keycode_from_hardware_keycode (event->hardware_keycode); + ret = swfdec_gtk_keycode_from_hardware_keycode (event->hardware_keycode); if (ret == 0) g_printerr ("could not translate key to Flash keycode. HW keycode %u, keyval %u\n", event->hardware_keycode, event->keyval);
Maybe Matching Threads
- 13 commits - libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec_gtk_keys.c libswfdec-gtk/swfdec_gtk_keys.h libswfdec-gtk/swfdec_gtk_widget.c libswfdec/Makefile.am libswfdec/swfdec_as_types.c libswfdec/swfdec.h libswfdec/swfdec_initialize.as
- 36 commits - doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_amf.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_strings.c libswfdec/swfdec_buffer.c libswfdec/swfdec_buffer.h
- 70 commits - configure.ac libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec-gtk.h libswfdec-gtk/swfdec_gtk_loader.c libswfdec-gtk/swfdec_gtk_player.c libswfdec-gtk/swfdec_gtk_socket.c libswfdec-gtk/swfdec_gtk_socket.h libswfdec-gtk/swfdec_playback_alsa.c
- 6 commits - libswfdec/swfdec_initialize.as libswfdec/swfdec_initialize.h libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_stage_as.c test/trace
- 4 commits - libswfdec/swfdec_as_boolean.c libswfdec/swfdec_as_boolean.h libswfdec/swfdec_as_context.c libswfdec/swfdec_as_initialize.as libswfdec/swfdec_as_initialize.h libswfdec/swfdec_as_interpret.c test/trace