faceblur: fix handling of profile property.
authorStefan Kost <ensonic@users.sf.net>
Fri, 19 Feb 2010 20:50:18 +0000 (22:50 +0200)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Wed, 8 Sep 2010 20:15:48 +0000 (17:15 -0300)
Dup and free the string. Fixes leaking new values and avoids crashing
gst-inspect.

ext/opencv/faceblur/gstfaceblur.c

index e9da8f8..5f1deb3 100644 (file)
@@ -118,6 +118,8 @@ gst_faceblur_finalize (GObject * obj)
     cvReleaseImage (&filter->cvImage);
     cvReleaseImage (&filter->cvGray);
   }
+  
+  g_free (filter->profile);
 
   G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
@@ -184,7 +186,7 @@ gst_faceblur_init (Gstfaceblur * filter, GstfaceblurClass * gclass)
 
   gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);
   gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);
-  filter->profile = DEFAULT_PROFILE;
+  filter->profile = g_strdup (DEFAULT_PROFILE);
   gst_faceblur_load_profile (filter);
 }
 
@@ -196,6 +198,7 @@ gst_faceblur_set_property (GObject * object, guint prop_id,
 
   switch (prop_id) {
     case PROP_PROFILE:
+      g_free (filter->profile);
       filter->profile = g_value_dup_string (value);
       gst_faceblur_load_profile (filter);
       break;
@@ -213,7 +216,7 @@ gst_faceblur_get_property (GObject * object, guint prop_id,
 
   switch (prop_id) {
     case PROP_PROFILE:
-      g_value_take_string (value, filter->profile);
+      g_value_set_string (value, filter->profile);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);