From 4bbc3b6f0469cc27e2f6e476d0c6a987a28ac41a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 12 Mar 2012 18:02:27 +0100 Subject: [PATCH] caps: small cleanups --- gst/gstcaps.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/gst/gstcaps.c b/gst/gstcaps.c index b3c9da5..c2e0dd1 100644 --- a/gst/gstcaps.c +++ b/gst/gstcaps.c @@ -606,29 +606,30 @@ gst_caps_remove_structure (GstCaps * caps, guint idx) GstCaps * gst_caps_merge_structure (GstCaps * caps, GstStructure * structure) { + GstStructure *structure1; + int i; + gboolean unique = TRUE; + g_return_val_if_fail (GST_IS_CAPS (caps), NULL); - if (G_LIKELY (structure)) { - GstStructure *structure1; - int i; - gboolean unique = TRUE; - - /* check each structure */ - for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) { - structure1 = gst_caps_get_structure_unchecked (caps, i); - /* if structure is a subset of structure1, then skip it */ - if (gst_structure_is_subset (structure, structure1)) { - unique = FALSE; - break; - } - } - if (unique) { - caps = gst_caps_make_writable (caps); - gst_caps_append_structure_unchecked (caps, structure); - } else { - gst_structure_free (structure); + if (G_UNLIKELY (structure == NULL)) + return caps; + + /* check each structure */ + for (i = GST_CAPS_LEN (caps) - 1; i >= 0; i--) { + structure1 = gst_caps_get_structure_unchecked (caps, i); + /* if structure is a subset of structure1, then skip it */ + if (gst_structure_is_subset (structure, structure1)) { + unique = FALSE; + break; } } + if (unique) { + caps = gst_caps_make_writable (caps); + gst_caps_append_structure_unchecked (caps, structure); + } else { + gst_structure_free (structure); + } return caps; } -- 2.7.4