gst/autoplug/gstspider.c: fixed caps leak
authorChristophe Fergeau <teuf@gnome.org>
Sat, 6 Mar 2004 18:25:59 +0000 (18:25 +0000)
committerChristophe Fergeau <teuf@gnome.org>
Sat, 6 Mar 2004 18:25:59 +0000 (18:25 +0000)
Original commit message from CVS:
2004-03-06  Christophe Fergeau  <teuf@gnome.org>

* gst/autoplug/gstspider.c: (gst_spider_identity_plug): fixed caps
leak

ChangeLog
gst/autoplug/gstspider.c

index d0d48f209712d9a25cf5d7712b0c448a052b4625..dc1e78572ebc8648410a288a8d68db38dc82852e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-03-06  Christophe Fergeau  <teuf@gnome.org>
+
+       * gst/autoplug/gstspider.c: (gst_spider_identity_plug): fixed caps
+       leak
+
 2004-03-05  David Schleef  <ds@schleef.org>
 
        reviewed by: <delete if not using a buddy>
index b77794f31d17b43d0dbd80e11d6d7e35264c3bad..7182cc0bcd194e1844435d7435ec4361dc02a4e0 100644 (file)
@@ -394,13 +394,10 @@ gst_spider_identity_plug (GstSpiderIdentity *ident)
     GstCaps *src_caps = gst_pad_get_caps (ident->src);
     if (! gst_caps_is_empty (src_caps) && ! gst_caps_is_any (src_caps))
     {
-      const char *mime;
       GList *factories;
       GstPadTemplate *padtemp;
       gboolean found = FALSE;
 
-      mime = gst_structure_get_name (gst_caps_get_structure (src_caps, 0));
-
       factories = spider->factories;
       while (factories)
       {
@@ -414,12 +411,18 @@ gst_spider_identity_plug (GstSpiderIdentity *ident)
       }
       if (!found)
       {
+       const char *mime;
+
+       mime = gst_structure_get_name (gst_caps_get_structure (src_caps, 0));
+
         GST_ELEMENT_ERROR (spider, STREAM, CODEC_NOT_FOUND,
                            (_("There is no element present to handle the stream's mime type %s."), mime),
                            (NULL));
+       gst_caps_free (src_caps);
        return;
       }
     }
+    gst_caps_free (src_caps);
   }