From 31ce9d42b04c44faba909da38f77c5ca259f3b87 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 12 Jul 2006 14:20:43 +0000 Subject: [PATCH] ext/vorbis/vorbisdec.c: gst_tag_list_merge() returns a new object. Take that into account when using it. This avoids ... Original commit message from CVS: * ext/vorbis/vorbisdec.c: (vorbis_dec_finalize), (vorbis_handle_comment_packet): gst_tag_list_merge() returns a new object. Take that into account when using it. This avoids memleak. Revert previous commit which is not needed. --- ChangeLog | 8 ++++++++ ext/vorbis/vorbisdec.c | 13 ++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index f1fbcf7f0e..54b3350983 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-07-12 Edward Hervey + + * ext/vorbis/vorbisdec.c: (vorbis_dec_finalize), + (vorbis_handle_comment_packet): + gst_tag_list_merge() returns a new object. Take that into account when + using it. This avoids memleak. + Revert previous commit which is not needed. + 2006-07-12 Edward Hervey * ext/vorbis/vorbisdec.c: (vorbis_dec_finalize): diff --git a/ext/vorbis/vorbisdec.c b/ext/vorbis/vorbisdec.c index 2d75c8784e..230663d914 100644 --- a/ext/vorbis/vorbisdec.c +++ b/ext/vorbis/vorbisdec.c @@ -98,8 +98,6 @@ static gboolean vorbis_dec_convert (GstPad * pad, static gboolean vorbis_dec_sink_query (GstPad * pad, GstQuery * query); -static void gst_vorbis_dec_reset (GstVorbisDec * dec); - static void gst_vorbis_dec_base_init (gpointer g_class) { @@ -183,8 +181,6 @@ vorbis_dec_finalize (GObject * object) vorbis_comment_clear (&vd->vc); vorbis_info_clear (&vd->vi); - gst_vorbis_dec_reset (vd); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -660,6 +656,7 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet) { guint bitrate = 0; gchar *encoder = NULL; + GstTagList *list; GstBuffer *buf; GST_DEBUG_OBJECT (vd, "parsing comment packet"); @@ -667,11 +664,13 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet) buf = gst_buffer_new_and_alloc (packet->bytes); GST_BUFFER_DATA (buf) = packet->packet; - vd->taglist = - gst_tag_list_merge (vd->taglist, + list = gst_tag_list_from_vorbiscomment_buffer (buf, (guint8 *) "\003vorbis", 7, - &encoder), GST_TAG_MERGE_REPLACE); + &encoder); + vd->taglist = gst_tag_list_merge (vd->taglist, list, GST_TAG_MERGE_REPLACE); + + gst_tag_list_free (list); gst_buffer_unref (buf); if (!vd->taglist) {