jack: don't leak client name when freeing the element
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 9 Dec 2011 15:50:28 +0000 (15:50 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 9 Dec 2011 15:50:28 +0000 (15:50 +0000)
And add gtk-doc chunks for the new property.

https://bugzilla.gnome.org/show_bug.cgi?id=665872

ext/jack/gstjackaudiosink.c
ext/jack/gstjackaudiosrc.c

index e1513b7..078ca24 100644 (file)
@@ -717,6 +717,13 @@ gst_jack_audio_sink_class_init (GstJackAudioSinkClass * klass)
           "The Jack server to connect to (NULL = default)",
           DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstJackAudioSink:client-name
+   *
+   * The client name to use.
+   *
+   * Since: 0.10.31
+   */
   g_object_class_install_property (gobject_class, PROP_CLIENT_NAME,
       g_param_spec_string ("client-name", "Client name",
           "The client name of the Jack instance (NULL = default)",
@@ -760,6 +767,12 @@ gst_jack_audio_sink_dispose (GObject * object)
   GstJackAudioSink *sink = GST_JACK_AUDIO_SINK (object);
 
   gst_caps_replace (&sink->caps, NULL);
+
+  if (sink->client_name != NULL) {
+    g_free (sink->client_name);
+    sink->client_name = NULL;
+  }
+
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
index 469737d..3c37970 100644 (file)
@@ -737,6 +737,13 @@ gst_jack_audio_src_class_init (GstJackAudioSrcClass * klass)
           "The Jack server to connect to (NULL = default)",
           DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstJackAudioSrc:client-name
+   *
+   * The client name to use.
+   *
+   * Since: 0.10.31
+   */
   g_object_class_install_property (gobject_class, PROP_CLIENT_NAME,
       g_param_spec_string ("client-name", "Client name",
           "The client name of the Jack instance (NULL = default)",
@@ -784,6 +791,12 @@ gst_jack_audio_src_dispose (GObject * object)
   GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object);
 
   gst_caps_replace (&src->caps, NULL);
+
+  if (src->client_name != NULL) {
+    g_free (src->client_name);
+    src->client_name = NULL;
+  }
+
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }