imagecapturebin: Don't leak location string
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sun, 19 Dec 2010 11:03:03 +0000 (12:03 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sun, 19 Dec 2010 11:03:03 +0000 (12:03 +0100)
gst/camerabin2/gstimagecapturebin.c

index df253d06bea743bf4f459682b15c85de38025228..367232e325932ec38ab6106e4b165c69ce56dfe6 100644 (file)
@@ -72,6 +72,7 @@ gst_image_capture_bin_set_property (GObject * object, guint prop_id,
 
   switch (prop_id) {
     case PROP_LOCATION:
+      g_free (imgbin->location);
       imgbin->location = g_value_dup_string (value);
       if (imgbin->sink) {
         g_object_set (imgbin, "location", imgbin->location, NULL);
@@ -99,6 +100,16 @@ gst_image_capture_bin_get_property (GObject * object, guint prop_id,
   }
 }
 
+static void
+gst_image_capture_bin_finalize (GObject * object)
+{
+  GstImageCaptureBin *imgbin = GST_IMAGE_CAPTURE_BIN_CAST (object);
+
+  g_free (imgbin->location);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
 static void
 gst_image_capture_bin_base_init (gpointer g_class)
 {
@@ -123,6 +134,7 @@ gst_image_capture_bin_class_init (GstImageCaptureBinClass * klass)
 
   gobject_class->set_property = gst_image_capture_bin_set_property;
   gobject_class->get_property = gst_image_capture_bin_get_property;
+  gobject_class->finalize = gst_image_capture_bin_finalize;
 
   element_class->change_state =
       GST_DEBUG_FUNCPTR (gst_image_capture_bin_change_state);