tests/examples/metadata/read-metadata.c: Don't leak old taglist.
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 5 Aug 2008 15:42:00 +0000 (15:42 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 5 Aug 2008 15:42:00 +0000 (15:42 +0000)
Original commit message from CVS:
* tests/examples/metadata/read-metadata.c:
Don't leak old taglist.

ChangeLog
tests/examples/metadata/read-metadata.c

index 2b94298..63f83e8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-05  Stefan Kost  <ensonic@users.sf.net>
+
+       * tests/examples/metadata/read-metadata.c:
+         Don't leak old taglist.
+
 2008-08-05  Wim Taymans  <wim.taymans@collabora.co.uk>
 
        Patch by: Olivier Crete <tester at tester dot ca>
index 730e450..9c3d4c8 100644 (file)
@@ -63,12 +63,14 @@ message_loop (GstElement * element, GstTagList ** tags)
         return TRUE;
       case GST_MESSAGE_TAG:
       {
-        GstTagList *new_tags;
+        GstTagList *new_tags, *old_tags;
 
         gst_message_parse_tag (message, &new_tags);
-        if (*tags)
-          *tags = gst_tag_list_merge (*tags, new_tags, GST_TAG_MERGE_KEEP);
-        else
+        if (*tags) {
+          old_tags = *tags;
+          *tags = gst_tag_list_merge (old_tags, new_tags, GST_TAG_MERGE_KEEP);
+          gst_tag_list_free (old_tags);
+        } else
           *tags = new_tags;
         break;
       }