[Swfdec-commits] Branch '0.8' - 13 commits - configure.ac doc/Makefile.am NEWS swfdec/swfdec_as_string.c swfdec/swfdec_image.c swfdec/swfdec_player.c swfdec/swfdec_text_format.c swfdec/swfdec_text_layout.c swfdec/swfdec_url.c test/swfdec_test_swfdec_socket.c

Benjamin Otte company at kemper.freedesktop.org
Thu Oct 23 14:35:48 PDT 2008


 NEWS                             |   10 ++++++++++
 configure.ac                     |    2 +-
 doc/Makefile.am                  |    1 +
 swfdec/swfdec_as_string.c        |    7 ++++++-
 swfdec/swfdec_image.c            |    2 ++
 swfdec/swfdec_player.c           |   12 ++++++++----
 swfdec/swfdec_text_format.c      |   13 +++++++++++++
 swfdec/swfdec_text_layout.c      |    1 +
 swfdec/swfdec_url.c              |    1 +
 test/swfdec_test_swfdec_socket.c |    2 ++
 10 files changed, 45 insertions(+), 6 deletions(-)

New commits:
commit b1260803099cad927089e9deada1754b995d85a3
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 23:24:14 2008 +0200

    back to development

diff --git a/configure.ac b/configure.ac
index e2eb3b3..20e04e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.58])
 
 m4_define(swfdec_major, 0)
 m4_define(swfdec_minor, 8)
-m4_define(swfdec_micro, 2)
+m4_define(swfdec_micro, 3)
 AC_INIT(swfdec,[swfdec_major.swfdec_minor.swfdec_micro])
 
 SWFDEC_VERSION_MAJOR=swfdec_major
commit 8ea44f09d008d1faed954428a5f608be36cfc61d
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 23:23:39 2008 +0200

    release 0.8.2

diff --git a/configure.ac b/configure.ac
index 81d00d6..e2eb3b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.58])
 
 m4_define(swfdec_major, 0)
 m4_define(swfdec_minor, 8)
-m4_define(swfdec_micro, 1)
+m4_define(swfdec_micro, 2)
 AC_INIT(swfdec,[swfdec_major.swfdec_minor.swfdec_micro])
 
 SWFDEC_VERSION_MAJOR=swfdec_major
commit a9cab7b3d628d812bdc8ed4727931103ad9af661
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 23:10:36 2008 +0200

    update NEWS

diff --git a/NEWS b/NEWS
index bbad1ae..7c39d8b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,14 @@
 
+ 0.8.2 ("Gametrailers")
+
+Here's the first stable release.
+- fix crash when reading invalid JPEG images
+- fix invalid memory accesses
+- fix deadlock when sound stream had no data
+- fix regression where some files weren't loaded.
+- lots of memory leaks plugged
+- various build fixes/improvements
+
  0.8.0 ("Slide")
 
 And here is our 6monthly stable release again:
commit 3cb78d1e54d95d70cb18c4cd90933c51770f36f2
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 22:21:53 2008 +0200

    build fix for docs when srcdir != builddir

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 50b2197..4e9a69f 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -174,6 +174,7 @@ IGNORE_HFILES= \
 
 if WITH_GTK
 EXTRA_HFILES = \
+	../swfdec/swfdec_version.h.in \
 	../swfdec-gtk/swfdec_gtk_keys.h \
 	../swfdec-gtk/swfdec_gtk_loader.h \
 	../swfdec-gtk/swfdec_gtk_player.h \
commit 7fafbe5fa68968b93733406a0c3b5075df57b130
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Oct 22 12:10:03 2008 +0200

    rename variable to avoid shadowing

diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index 505af2d..2d89527 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -1114,8 +1114,8 @@ swfdec_player_dispose (GObject *object)
 }
 
 static void
-swfdec_player_broadcast (SwfdecPlayer *player, const char *object_name, const char *signal,
-    guint argc, SwfdecAsValue *argv)
+swfdec_player_broadcast (SwfdecPlayer *player, const char *object_name, 
+    const char *signal_name, guint argc, SwfdecAsValue *argv)
 {
   GSList *walk;
   SwfdecAsValue vals[3];
@@ -1128,7 +1128,7 @@ swfdec_player_broadcast (SwfdecPlayer *player, const char *object_name, const ch
     memcpy (&vals[1], argv, argc * sizeof (SwfdecAsValue));
   }
 
-  SWFDEC_DEBUG ("broadcasting message %s.%s", object_name, signal);
+  SWFDEC_DEBUG ("broadcasting message %s.%s", object_name, signal_name);
   /* FIXME: sandbox ordering? */
   for (walk = player->priv->sandboxes; walk; walk = walk->next) {
     SwfdecSandbox *sandbox = walk->data;
@@ -1136,7 +1136,7 @@ swfdec_player_broadcast (SwfdecPlayer *player, const char *object_name, const ch
     if (!SWFDEC_AS_VALUE_IS_OBJECT (&vals[0]))
       return;
     obj = SWFDEC_AS_VALUE_GET_OBJECT (&vals[0]);
-    SWFDEC_AS_VALUE_SET_STRING (&vals[0], signal);
+    SWFDEC_AS_VALUE_SET_STRING (&vals[0], signal_name);
     swfdec_sandbox_use (sandbox);
     swfdec_as_object_call (obj, SWFDEC_AS_STR_broadcastMessage, argc + 1, vals, NULL);
     swfdec_sandbox_unuse (sandbox);
commit f4a39bd4cb8b55c4def1f219b3e607e53f412236
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 22:10:57 2008 +0200

    fix memleak in test code

diff --git a/test/swfdec_test_swfdec_socket.c b/test/swfdec_test_swfdec_socket.c
index 4cc887f..bdcacd3 100644
--- a/test/swfdec_test_swfdec_socket.c
+++ b/test/swfdec_test_swfdec_socket.c
@@ -36,6 +36,8 @@ swfdec_test_swfdec_socket_close (SwfdecStream *stream)
   SwfdecTestSwfdecSocket *test = SWFDEC_TEST_SWFDEC_SOCKET (stream);
 
   test->plugin.close (&test->plugin);
+  g_free (test->plugin.host);
+  test->plugin.host = NULL;
 }
 
 static void
commit e301d5bc0fd24e5a5de56f06b88deeac707bd202
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 22:10:42 2008 +0200

    fix memleak when tab stops are set

diff --git a/swfdec/swfdec_text_format.c b/swfdec/swfdec_text_format.c
index 7442a0d..05f522e 100644
--- a/swfdec/swfdec_text_format.c
+++ b/swfdec/swfdec_text_format.c
@@ -74,10 +74,23 @@ swfdec_text_format_mark (SwfdecGcObject *object)
 }
 
 static void
+swfdec_text_format_dispose (GObject *object)
+{
+  SwfdecTextFormat *format = SWFDEC_TEXT_FORMAT (object);
+
+  swfdec_text_attributes_reset (&format->attr);
+
+  G_OBJECT_CLASS (swfdec_text_format_parent_class)->dispose (object);
+}
+
+static void
 swfdec_text_format_class_init (SwfdecTextFormatClass *klass)
 {
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
   SwfdecGcObjectClass *gc_class = SWFDEC_GC_OBJECT_CLASS (klass);
 
+  object_class->dispose = swfdec_text_format_dispose;
+
   gc_class->mark = swfdec_text_format_mark;
 }
 
commit ad49f2a90401d47877d4246df8f51d81a5f3084c
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 22:09:52 2008 +0200

    fix lastIndexOf potentially reading invalid memory
    
    g_utf8_offset_to_pointer() requires a valid offset

diff --git a/swfdec/swfdec_as_string.c b/swfdec/swfdec_as_string.c
index e9ba518..c5f94d4 100644
--- a/swfdec/swfdec_as_string.c
+++ b/swfdec/swfdec_as_string.c
@@ -112,11 +112,16 @@ swfdec_as_string_lastIndexOf (SwfdecAsContext *cx, SwfdecAsObject *object,
   s = swfdec_as_value_to_string (cx, &argv[0]);
   if (argc == 2) {
     int offset = swfdec_as_value_to_integer (cx, &argv[1]);
+    const char *tmp;
     if (offset < 0) {
       SWFDEC_AS_VALUE_SET_INT (ret, -1);
       return;
     }
-    len = g_utf8_offset_to_pointer (string, offset + 1) - string;
+    tmp = string;
+    offset++;
+    while (*tmp && offset-- != 0)
+      tmp = g_utf8_next_char (tmp);
+    len = tmp - string;
   } else {
     len = G_MAXSIZE;
   }
commit 680e77e39af08b7066c471550633cb362f201924
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 13:44:10 2008 +0200

    don't leak the original image when transforming it

diff --git a/swfdec/swfdec_image.c b/swfdec/swfdec_image.c
index 7c455af..23a6845 100644
--- a/swfdec/swfdec_image.c
+++ b/swfdec/swfdec_image.c
@@ -694,6 +694,7 @@ swfdec_image_create_surface_transformed (SwfdecImage *image, SwfdecRenderer *ren
   }
 
   surface = swfdec_renderer_transform (renderer, source, trans);
+  cairo_surface_destroy (source);
   if (renderer) {
     surface = swfdec_renderer_create_similar (renderer, surface);
     /* FIXME: The size is just an educated guess */
commit 4f0f72df163df9a3fc00e627fe83051b92a44a73
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 13:18:23 2008 +0200

    don't leak the attribute iterator

diff --git a/swfdec/swfdec_text_layout.c b/swfdec/swfdec_text_layout.c
index c5fd4cf..0653499 100644
--- a/swfdec/swfdec_text_layout.c
+++ b/swfdec/swfdec_text_layout.c
@@ -900,6 +900,7 @@ swfdec_text_layout_modify_attributes (SwfdecTextLayout *layout,
   } while (pango_attr_iterator_next (iter));
   pango_layout_set_attributes (block->layout, new);
   pango_attr_list_unref (new);
+  pango_attr_iterator_destroy (iter);
   return old;
 }
 
commit b64d8ee225ebb6803c96cdee77df5e7663935f2d
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 13:18:08 2008 +0200

    don't leak the escaped text

diff --git a/swfdec/swfdec_url.c b/swfdec/swfdec_url.c
index b2b7d0a..40af41a 100644
--- a/swfdec/swfdec_url.c
+++ b/swfdec/swfdec_url.c
@@ -682,6 +682,7 @@ swfdec_url_new_from_input (const char *input)
     char *escaped =
       g_uri_escape_string (input[0] == '/' ? &input[1] : &input[0], "/", TRUE);
     url = swfdec_url_new_components ("file", NULL, 0, escaped, NULL);
+    g_free (escaped);
   } else {
     char *absolute, *cur;
     cur = g_get_current_dir ();
commit 3c03ca3f860980f187a5879126ab98979edc5a07
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 13:17:43 2008 +0200

    fix rather huge memleak of the renderer in every SwfdecPlayer

diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index 6515189..505af2d 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -1093,6 +1093,10 @@ swfdec_player_dispose (GObject *object)
   }
   g_array_free (priv->invalidations, TRUE);
   priv->invalidations = NULL;
+  if (priv->renderer) {
+    g_object_unref (priv->renderer);
+    priv->renderer = NULL;
+  }
   if (priv->runtime) {
     g_timer_destroy (priv->runtime);
     priv->runtime = NULL;
commit cea4227c1502f1abda9125b1793dc997dec5e4bc
Author: Benjamin Otte <otte at gnome.org>
Date:   Thu Oct 23 13:17:27 2008 +0200

    fix memleak when loading lossless images

diff --git a/swfdec/swfdec_image.c b/swfdec/swfdec_image.c
index 92bef53..7c455af 100644
--- a/swfdec/swfdec_image.c
+++ b/swfdec/swfdec_image.c
@@ -469,6 +469,7 @@ swfdec_image_lossless_load (SwfdecImage *image, SwfdecRenderer *renderer)
       }
     }
     data = g_memdup (buffer->data, buffer->length);
+    swfdec_buffer_unref (buffer);
   } else {
     SWFDEC_ERROR ("unknown lossless image format %u", format);
     return NULL;


More information about the Swfdec-commits mailing list