[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