diff options
author | Stefan Kost <ensonic@users.sourceforge.net> | 2008-12-16 09:37:53 +0000 |
---|---|---|
committer | Stefan Kost <ensonic@users.sourceforge.net> | 2008-12-16 09:37:53 +0000 |
commit | 4a162d56ab68ccc888c45ad7850ec4d33679fef4 (patch) | |
tree | a8917e8fb04c3dbe5ecd4c2e3ab91cb07539b599 | |
parent | f28a2a6cfc7e69279c5bda8bbdcf31039d99487f (diff) |
gst/gsttaglist.c: Avoid copy of empty taglist.
Original commit message from CVS:
* gst/gsttaglist.c:
Avoid copy of empty taglist.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gst/gsttaglist.c | 13 |
2 files changed, 10 insertions, 8 deletions
@@ -1,6 +1,11 @@ 2008-12-16 Stefan Kost <ensonic@users.sf.net> * gst/gsttaglist.c: + Avoid copy of empty taglist. + +2008-12-16 Stefan Kost <ensonic@users.sf.net> + + * gst/gsttaglist.c: * tests/check/gst/gsttag.c: More complete unit tests. Fix handling of empty taglists (they were not merged before). diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c index 5ad45817a..feb425e6e 100644 --- a/gst/gsttaglist.c +++ b/gst/gsttaglist.c @@ -692,8 +692,8 @@ GstTagList * gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2, GstTagMergeMode mode) { - const GstTagList *list1_cp, *list2_cp; - GstTagList *ret; + GstTagList *list1_cp; + const GstTagList *list2_cp; g_return_val_if_fail (list1 == NULL || GST_IS_TAG_LIST (list1), NULL); g_return_val_if_fail (list2 == NULL || GST_IS_TAG_LIST (list2), NULL); @@ -705,18 +705,15 @@ gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2, } /* create empty list, we need to do this to correctly handling merge modes */ - list1_cp = (list1) ? list1 : gst_tag_list_new (); + list1_cp = (list1) ? gst_tag_list_copy (list1) : gst_tag_list_new (); list2_cp = (list2) ? list2 : gst_tag_list_new (); - ret = gst_tag_list_copy (list1_cp); - gst_tag_list_insert (ret, list2_cp, mode); + gst_tag_list_insert (list1_cp, list2_cp, mode); - if (!list1) - gst_tag_list_free ((GstTagList *) list1_cp); if (!list2) gst_tag_list_free ((GstTagList *) list2_cp); - return ret; + return list1_cp; } /** |