[Swfdec] 5 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_debugger.c libswfdec/swfdec_movie.c libswfdec/swfdec_script.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_tag.c libswfdec/swfdec_text_field.c test/trace

Benjamin Otte company at kemper.freedesktop.org
Thu Nov 22 12:34:36 PST 2007


 libswfdec/swfdec_as_interpret.c |   23 ++++++++++++-----------
 libswfdec/swfdec_bits.c         |   13 +++----------
 libswfdec/swfdec_bits.h         |    3 +--
 libswfdec/swfdec_debugger.c     |    2 +-
 libswfdec/swfdec_movie.c        |    2 +-
 libswfdec/swfdec_script.c       |    2 +-
 libswfdec/swfdec_sprite_movie.c |    4 ++--
 libswfdec/swfdec_tag.c          |    4 ++--
 libswfdec/swfdec_text_field.c   |    4 ++--
 test/trace/atan2-5.swf          |binary
 test/trace/atan2-5.swf.trace    |    6 ++++++
 test/trace/atan2-6.swf          |binary
 test/trace/atan2-6.swf.trace    |    6 ++++++
 test/trace/atan2-7.swf          |binary
 test/trace/atan2-7.swf.trace    |    6 ++++++
 test/trace/atan2-8.swf          |binary
 test/trace/atan2-8.swf.trace    |    6 ++++++
 test/trace/atan2.as             |    6 ++++++
 18 files changed, 55 insertions(+), 32 deletions(-)

New commits:
commit 1e5f7cd44c31b1c67b912dd1bc67d41592de3c2d
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Nov 22 21:33:02 2007 +0100

    remove swfdec_bits_get_string() and rename swfdec_bits_get_String_with_version() to it

diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index b703847..130d920 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -326,7 +326,7 @@ swfdec_action_push (SwfdecAsContext *cx, guint action, const guint8 *data, guint
     switch (type) {
       case 0: /* string */
 	{
-	  char *s = swfdec_bits_get_string_with_version (&bits, cx->version);
+	  char *s = swfdec_bits_get_string (&bits, cx->version);
 	  if (s == NULL)
 	    return;
 	  SWFDEC_AS_VALUE_SET_STRING (swfdec_as_stack_push (cx), 
@@ -1130,8 +1130,8 @@ swfdec_action_get_url (SwfdecAsContext *cx, guint action, const guint8 *data, gu
   char *url, *target;
 
   swfdec_bits_init_data (&bits, data, len);
-  url = swfdec_bits_get_string_with_version (&bits, cx->version);
-  target = swfdec_bits_get_string_with_version (&bits, cx->version);
+  url = swfdec_bits_get_string (&bits, cx->version);
+  target = swfdec_bits_get_string (&bits, cx->version);
   if (url == NULL || target == NULL) {
     SWFDEC_ERROR ("not enough data in GetURL");
     g_free (url);
@@ -1797,7 +1797,7 @@ swfdec_action_define_function (SwfdecAsContext *cx, guint action,
 
   frame = cx->frame;
   swfdec_bits_init_data (&bits, data, len);
-  function_name = swfdec_bits_get_string_with_version (&bits, cx->version);
+  function_name = swfdec_bits_get_string (&bits, cx->version);
   if (function_name == NULL) {
     SWFDEC_ERROR ("could not parse function name");
     return;
@@ -1823,7 +1823,7 @@ swfdec_action_define_function (SwfdecAsContext *cx, guint action,
 	  args[i].preload = 0;
 	}
       }
-      args[i].name = swfdec_bits_get_string_with_version (&bits, cx->version);
+      args[i].name = swfdec_bits_get_string (&bits, cx->version);
       if (args[i].name == NULL || args[i].name == '\0') {
 	SWFDEC_ERROR ("empty argument name not allowed");
 	g_free (args);
@@ -2715,7 +2715,7 @@ swfdec_action_try (SwfdecAsContext *cx, guint action, const guint8 *data, guint
     try_data->register_number = swfdec_bits_get_u8 (&bits);
   } else {
     try_data->variable_name =
-      swfdec_bits_get_string_with_version (&bits, cx->version);
+      swfdec_bits_get_string (&bits, cx->version);
   }
 
   if (swfdec_bits_left (&bits)) {
@@ -2855,7 +2855,7 @@ swfdec_action_print_define_function (guint action, const guint8 *data, guint len
   string = g_string_new (v2 ? "DefineFunction2 " : "DefineFunction ");
   swfdec_bits_init_data (&bits, data, len);
   /* FIXME: version! */
-  function_name = swfdec_bits_get_string_with_version (&bits, 7);
+  function_name = swfdec_bits_get_string (&bits, 7);
   if (function_name == NULL) {
     SWFDEC_ERROR ("could not parse function name");
     g_string_free (string, TRUE);
@@ -2879,7 +2879,7 @@ swfdec_action_print_define_function (guint action, const guint8 *data, guint len
       preload = swfdec_bits_get_u8 (&bits);
     else
       preload = 0;
-    arg_name = swfdec_bits_get_string_with_version (&bits, 7);
+    arg_name = swfdec_bits_get_string (&bits, 7);
     if (preload == 0 && (arg_name == NULL || *arg_name == '\0')) {
       SWFDEC_ERROR ("empty argument name not allowed");
       g_string_free (string, TRUE);
@@ -2925,8 +2925,8 @@ swfdec_action_print_get_url (guint action, const guint8 *data, guint len)
   char *url, *target, *ret;
 
   swfdec_bits_init_data (&bits, data, len);
-  url = swfdec_bits_get_string_with_version (&bits, 7);
-  target = swfdec_bits_get_string_with_version (&bits, 7);
+  url = swfdec_bits_get_string (&bits, 7);
+  target = swfdec_bits_get_string (&bits, 7);
   if (url == NULL) {
     SWFDEC_ERROR ("not enough data in GetURL");
     url = g_strdup ("???");
@@ -2983,7 +2983,7 @@ swfdec_action_print_push (guint action, const guint8 *data, guint len)
       case 0: /* string */
 	{
 	  /* FIXME: need version! */
-	  char *s = swfdec_bits_get_string_with_version (&bits, 7);
+	  char *s = swfdec_bits_get_string (&bits, 7);
 	  if (!s) {
 	    g_string_free (string, TRUE);
 	    return NULL;
diff --git a/libswfdec/swfdec_bits.c b/libswfdec/swfdec_bits.c
index 992ec27..fbc35fc 100644
--- a/libswfdec/swfdec_bits.c
+++ b/libswfdec/swfdec_bits.c
@@ -481,18 +481,18 @@ swfdec_bits_skip_string (SwfdecBits *bits)
 }
 
 /**
- * swfdec_bits_get_string_with_version:
+ * swfdec_bits_get_string:
  * @bits: a #SwfdecBits
  * @version: Flash player version
  *
  * Prior to Flash 6, strings used to be encoded as LATIN1. Since Flash 6, 
- * strings are encoded as UTF-8. This version does the check automatically
+ * strings are encoded as UTF-8. This version does that check automatically
  * and converts strings to UTF-8.
  *
  * Returns: a UTF-8 encoded string or %NULL on error
  **/
 char *
-swfdec_bits_get_string_with_version (SwfdecBits *bits, guint version)
+swfdec_bits_get_string (SwfdecBits *bits, guint version)
 {
   const char *s;
   
@@ -516,13 +516,6 @@ swfdec_bits_get_string_with_version (SwfdecBits *bits, guint version)
   }
 }
 
-/* FIXME: deprecated - someone remove this */
-char *
-swfdec_bits_get_string (SwfdecBits * bits)
-{
-  return swfdec_bits_get_string_with_version (bits, 6);
-}
-
 /**
  * swfdec_bits_skip_bytes:
  * @bits: a #SwfdecBits
diff --git a/libswfdec/swfdec_bits.h b/libswfdec/swfdec_bits.h
index defa165..29e9cce 100644
--- a/libswfdec/swfdec_bits.h
+++ b/libswfdec/swfdec_bits.h
@@ -62,9 +62,8 @@ void swfdec_bits_get_color_transform (SwfdecBits * bits,
 void swfdec_bits_get_matrix (SwfdecBits * bits, cairo_matrix_t *matrix, 
     cairo_matrix_t *inverse);
 guint swfdec_bits_skip_bytes (SwfdecBits *bits, guint bytes);
-char *swfdec_bits_get_string (SwfdecBits * bits);
 char *swfdec_bits_get_string_length (SwfdecBits * bits, guint len);
-char *swfdec_bits_get_string_with_version (SwfdecBits *bits, guint version);
+char *swfdec_bits_get_string (SwfdecBits *bits, guint version);
 SwfdecColor swfdec_bits_get_color (SwfdecBits * bits);
 SwfdecColor swfdec_bits_get_rgba (SwfdecBits * bits);
 void swfdec_bits_get_rect (SwfdecBits * bits, SwfdecRect *rect);
diff --git a/libswfdec/swfdec_debugger.c b/libswfdec/swfdec_debugger.c
index 89adbf6..2dca1df 100644
--- a/libswfdec/swfdec_debugger.c
+++ b/libswfdec/swfdec_debugger.c
@@ -71,7 +71,7 @@ swfdec_debugger_print_push (ScriptParser *parser, const guint8 *data, guint len)
     switch (type) {
       case 0: /* string */
 	{
-	  char *s = swfdec_bits_get_string_with_version (&bits, parser->version);
+	  char *s = swfdec_bits_get_string (&bits, parser->version);
 	  if (!s)
 	    goto error;
 	  g_string_append_c (string, '"');
diff --git a/libswfdec/swfdec_script.c b/libswfdec/swfdec_script.c
index 2dd36be..ec73386 100644
--- a/libswfdec/swfdec_script.c
+++ b/libswfdec/swfdec_script.c
@@ -64,7 +64,7 @@ swfdec_constant_pool_new_from_action (const guint8 *data, guint len, guint versi
   pool = g_malloc0 (sizeof (SwfdecConstantPool) + (n - 1) * sizeof (char *));
   pool->n_strings = n;
   for (i = 0; i < n; i++) {
-    pool->strings[i] = swfdec_bits_get_string_with_version (&bits, version);
+    pool->strings[i] = swfdec_bits_get_string (&bits, version);
     if (pool->strings[i] == NULL) {
       SWFDEC_ERROR ("not enough strings available");
       swfdec_constant_pool_free (pool);
diff --git a/libswfdec/swfdec_sprite_movie.c b/libswfdec/swfdec_sprite_movie.c
index 6ffdc67..1a7b6d5 100644
--- a/libswfdec/swfdec_sprite_movie.c
+++ b/libswfdec/swfdec_sprite_movie.c
@@ -229,7 +229,7 @@ swfdec_sprite_movie_perform_place (SwfdecSpriteMovie *movie, SwfdecBits *bits, g
   }
 
   if (has_name) {
-    char *s = swfdec_bits_get_string_with_version (bits, version);
+    char *s = swfdec_bits_get_string (bits, version);
     name = swfdec_as_context_give_string (SWFDEC_AS_CONTEXT (player), s);
     SWFDEC_LOG ("  name = %s", name);
   } else {
@@ -425,7 +425,7 @@ swfdec_sprite_movie_perform_one_action (SwfdecSpriteMovie *movie, guint tag, Swf
 	  char *name;
 	  id = swfdec_bits_get_u16 (&bits);
 	  object = swfdec_swf_decoder_get_character (SWFDEC_SWF_DECODER (resource->decoder), id);
-	  name = swfdec_bits_get_string_with_version (&bits, SWFDEC_AS_CONTEXT (player)->version);
+	  name = swfdec_bits_get_string (&bits, SWFDEC_AS_CONTEXT (player)->version);
 	  if (object == NULL) {
 	    SWFDEC_ERROR ("cannot export id %u as %s, id wasn't found", id, name);
 	  } else if (name == NULL) {
diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c
index 6103f51..5e0142e 100644
--- a/libswfdec/swfdec_tag.c
+++ b/libswfdec/swfdec_tag.c
@@ -65,7 +65,7 @@ tag_func_protect (SwfdecSwfDecoder * s, guint tag)
   if (swfdec_bits_left (&s->b)) {
     /* FIXME: What's this for? */
     swfdec_bits_get_u16 (&s->b);
-    s->password = swfdec_bits_get_string_with_version (&s->b, s->version);
+    s->password = swfdec_bits_get_string (&s->b, s->version);
   }
   return SWFDEC_STATUS_OK;
 }
@@ -79,7 +79,7 @@ tag_func_frame_label (SwfdecSwfDecoder * s, guint tag)
     SWFDEC_WARNING ("frame %d already has a label (%s)", s->parse_sprite->parse_frame, frame->label);
     g_free (frame->label);
   }
-  frame->label = swfdec_bits_get_string_with_version (&s->b, s->version);
+  frame->label = swfdec_bits_get_string (&s->b, s->version);
   SWFDEC_LOG ("frame %d named %s", s->parse_sprite->parse_frame, frame->label);
 
   return SWFDEC_STATUS_OK;
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index f7bf2cf..91af056 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -185,14 +185,14 @@ tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
     text->leading = swfdec_bits_get_s16 (b);
   }
 
-  text->variable = swfdec_bits_get_string_with_version (b, s->version);
+  text->variable = swfdec_bits_get_string (b, s->version);
   if (text->variable && *text->variable == 0) {
     g_free (text->variable);
     text->variable = NULL;
   }
 
   if (has_text)
-    text->input = swfdec_bits_get_string_with_version (b, s->version);
+    text->input = swfdec_bits_get_string (b, s->version);
 
   return SWFDEC_STATUS_OK;
 }
commit 9eed89d76ace0ea8bcb589293269ee0b064f7248
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Nov 22 21:28:44 2007 +0100

    use swfdec_bits_get_string_with_version () everywhere

diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c
index 1b18fd2..6103f51 100644
--- a/libswfdec/swfdec_tag.c
+++ b/libswfdec/swfdec_tag.c
@@ -65,7 +65,7 @@ tag_func_protect (SwfdecSwfDecoder * s, guint tag)
   if (swfdec_bits_left (&s->b)) {
     /* FIXME: What's this for? */
     swfdec_bits_get_u16 (&s->b);
-    s->password = swfdec_bits_get_string (&s->b);
+    s->password = swfdec_bits_get_string_with_version (&s->b, s->version);
   }
   return SWFDEC_STATUS_OK;
 }
@@ -79,7 +79,7 @@ tag_func_frame_label (SwfdecSwfDecoder * s, guint tag)
     SWFDEC_WARNING ("frame %d already has a label (%s)", s->parse_sprite->parse_frame, frame->label);
     g_free (frame->label);
   }
-  frame->label = swfdec_bits_get_string (&s->b);
+  frame->label = swfdec_bits_get_string_with_version (&s->b, s->version);
   SWFDEC_LOG ("frame %d named %s", s->parse_sprite->parse_frame, frame->label);
 
   return SWFDEC_STATUS_OK;
diff --git a/libswfdec/swfdec_text_field.c b/libswfdec/swfdec_text_field.c
index af90d23..f7bf2cf 100644
--- a/libswfdec/swfdec_text_field.c
+++ b/libswfdec/swfdec_text_field.c
@@ -185,14 +185,14 @@ tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
     text->leading = swfdec_bits_get_s16 (b);
   }
 
-  text->variable = swfdec_bits_get_string (b);
+  text->variable = swfdec_bits_get_string_with_version (b, s->version);
   if (text->variable && *text->variable == 0) {
     g_free (text->variable);
     text->variable = NULL;
   }
 
   if (has_text)
-    text->input = swfdec_bits_get_string (b);
+    text->input = swfdec_bits_get_string_with_version (b, s->version);
 
   return SWFDEC_STATUS_OK;
 }
commit 089fa86197ccc7df5f25bb23f0f951c1fda1df1f
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Nov 22 21:28:29 2007 +0100

    make print functions always assume utf-8

diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 7d6686f..b703847 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -2854,7 +2854,8 @@ swfdec_action_print_define_function (guint action, const guint8 *data, guint len
 
   string = g_string_new (v2 ? "DefineFunction2 " : "DefineFunction ");
   swfdec_bits_init_data (&bits, data, len);
-  function_name = swfdec_bits_get_string (&bits);
+  /* FIXME: version! */
+  function_name = swfdec_bits_get_string_with_version (&bits, 7);
   if (function_name == NULL) {
     SWFDEC_ERROR ("could not parse function name");
     g_string_free (string, TRUE);
@@ -2878,7 +2879,7 @@ swfdec_action_print_define_function (guint action, const guint8 *data, guint len
       preload = swfdec_bits_get_u8 (&bits);
     else
       preload = 0;
-    arg_name = swfdec_bits_get_string (&bits);
+    arg_name = swfdec_bits_get_string_with_version (&bits, 7);
     if (preload == 0 && (arg_name == NULL || *arg_name == '\0')) {
       SWFDEC_ERROR ("empty argument name not allowed");
       g_string_free (string, TRUE);
@@ -2924,8 +2925,8 @@ swfdec_action_print_get_url (guint action, const guint8 *data, guint len)
   char *url, *target, *ret;
 
   swfdec_bits_init_data (&bits, data, len);
-  url = swfdec_bits_get_string (&bits);
-  target = swfdec_bits_get_string (&bits);
+  url = swfdec_bits_get_string_with_version (&bits, 7);
+  target = swfdec_bits_get_string_with_version (&bits, 7);
   if (url == NULL) {
     SWFDEC_ERROR ("not enough data in GetURL");
     url = g_strdup ("???");
@@ -2982,7 +2983,7 @@ swfdec_action_print_push (guint action, const guint8 *data, guint len)
       case 0: /* string */
 	{
 	  /* FIXME: need version! */
-	  char *s = swfdec_bits_get_string (&bits);
+	  char *s = swfdec_bits_get_string_with_version (&bits, 7);
 	  if (!s) {
 	    g_string_free (string, TRUE);
 	    return NULL;
commit 012de7090f5bfdf49e184b85ebf11e49e61414ad
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Nov 22 10:31:42 2007 +0100

    update to include more values

diff --git a/test/trace/atan2-5.swf b/test/trace/atan2-5.swf
index 84ef951..a48098d 100644
Binary files a/test/trace/atan2-5.swf and b/test/trace/atan2-5.swf differ
diff --git a/test/trace/atan2-5.swf.trace b/test/trace/atan2-5.swf.trace
index c553b4d..56df156 100644
--- a/test/trace/atan2-5.swf.trace
+++ b/test/trace/atan2-5.swf.trace
@@ -1,2 +1,8 @@
+0.785398163397448
 1.5707963267949
 0
+0
+3.14159265358979
+-0.785398163397448
+-1.5707963267949
+-2.35619449019234
diff --git a/test/trace/atan2-6.swf b/test/trace/atan2-6.swf
index 2d37034..57485e4 100644
Binary files a/test/trace/atan2-6.swf and b/test/trace/atan2-6.swf differ
diff --git a/test/trace/atan2-6.swf.trace b/test/trace/atan2-6.swf.trace
index c553b4d..56df156 100644
--- a/test/trace/atan2-6.swf.trace
+++ b/test/trace/atan2-6.swf.trace
@@ -1,2 +1,8 @@
+0.785398163397448
 1.5707963267949
 0
+0
+3.14159265358979
+-0.785398163397448
+-1.5707963267949
+-2.35619449019234
diff --git a/test/trace/atan2-7.swf b/test/trace/atan2-7.swf
index 637ba50..21e55d0 100644
Binary files a/test/trace/atan2-7.swf and b/test/trace/atan2-7.swf differ
diff --git a/test/trace/atan2-7.swf.trace b/test/trace/atan2-7.swf.trace
index c553b4d..56df156 100644
--- a/test/trace/atan2-7.swf.trace
+++ b/test/trace/atan2-7.swf.trace
@@ -1,2 +1,8 @@
+0.785398163397448
 1.5707963267949
 0
+0
+3.14159265358979
+-0.785398163397448
+-1.5707963267949
+-2.35619449019234
diff --git a/test/trace/atan2-8.swf b/test/trace/atan2-8.swf
index 14333ec..ac00cd8 100644
Binary files a/test/trace/atan2-8.swf and b/test/trace/atan2-8.swf differ
diff --git a/test/trace/atan2-8.swf.trace b/test/trace/atan2-8.swf.trace
index c553b4d..56df156 100644
--- a/test/trace/atan2-8.swf.trace
+++ b/test/trace/atan2-8.swf.trace
@@ -1,2 +1,8 @@
+0.785398163397448
 1.5707963267949
 0
+0
+3.14159265358979
+-0.785398163397448
+-1.5707963267949
+-2.35619449019234
diff --git a/test/trace/atan2.as b/test/trace/atan2.as
index 602f072..687b91a 100644
--- a/test/trace/atan2.as
+++ b/test/trace/atan2.as
@@ -1,6 +1,12 @@
 // makeswf -v 7 -s 200x150 -r 1 -o atan2.swf atan2.as
 
+trace(Math.atan2(10, 10));
 trace(Math.atan2(10, 0));
 trace(Math.atan2(0, 10));
+trace(Math.atan2(0, 0));
+trace(Math.atan2(0, -10));
+trace(Math.atan2(-10, 10));
+trace(Math.atan2(-10, 0));
+trace(Math.atan2(-10, -10));
 
 loadMovie ("FSCommand:quit", "");
commit 63fb37928a76bdfed2a4b8dd6afb96f0cec4f3fb
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Nov 20 23:38:38 2007 +0100

    fix typo

diff --git a/libswfdec/swfdec_movie.c b/libswfdec/swfdec_movie.c
index 0fbf8a2..69a265b 100644
--- a/libswfdec/swfdec_movie.c
+++ b/libswfdec/swfdec_movie.c
@@ -308,7 +308,7 @@ swfdec_movie_remove (SwfdecMovie *movie)
  *
  * Removes this movie from its parent. After this it will no longer be present,
  * neither visually nor via ActionScript. This function will not cause an 
- * unload event. Compare with swfdec_movie_destroy ().
+ * unload event. Compare with swfdec_movie_remove ().
  **/
 void
 swfdec_movie_destroy (SwfdecMovie *movie)


More information about the Swfdec mailing list