diff --git a/ChangeLog b/ChangeLog index 09cf5ffbf5..9208125d1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-03-20 Wim Taymans + + * plugins/elements/gstfakesrc.c: (gst_fake_src_class_init), + (gst_fake_src_finalize): + Fix leaks in fakesrc. + + * tests/check/pipelines/parse-launch.c: (GST_START_TEST): + Fix leaks in the testcase. + 2006-03-19 Sebastien Moutte * gst/gst_private.h: diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c index cc3b2e4131..bb0d1d8ccd 100644 --- a/plugins/elements/gstfakesrc.c +++ b/plugins/elements/gstfakesrc.c @@ -215,6 +215,7 @@ gst_fake_src_filltype_get_type (void) GST_BOILERPLATE_FULL (GstFakeSrc, gst_fake_src, GstBaseSrc, GST_TYPE_BASE_SRC, _do_init); +static void gst_fake_src_finalize (GObject * object); static void gst_fake_src_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_fake_src_get_property (GObject * object, guint prop_id, @@ -254,6 +255,8 @@ gst_fake_src_class_init (GstFakeSrcClass * klass) gstelement_class = (GstElementClass *) klass; gstbase_src_class = (GstBaseSrcClass *) klass; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_fake_src_finalize); + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_fake_src_set_property); gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_fake_src_get_property); @@ -367,6 +370,22 @@ gst_fake_src_init (GstFakeSrc * fakesrc, GstFakeSrcClass * g_class) fakesrc->sync = DEFAULT_SYNC; } +static void +gst_fake_src_finalize (GObject * object) +{ + GstFakeSrc *src; + + src = GST_FAKE_SRC (object); + + g_free (src->last_message); + if (src->parent) { + gst_buffer_unref (src->parent); + src->parent = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + static gboolean gst_fake_src_event_handler (GstBaseSrc * basesrc, GstEvent * event) { diff --git a/tests/check/pipelines/parse-launch.c b/tests/check/pipelines/parse-launch.c index 2bf8431b05..6af9c8cb14 100644 --- a/tests/check/pipelines/parse-launch.c +++ b/tests/check/pipelines/parse-launch.c @@ -143,6 +143,7 @@ GST_START_TEST (test_launch_lines2) fail_unless (strcmp (s, "donald") == 0, "fakesrc name was not 'donald'"); fail_unless (i == 27, "num-buffers was not 27"); fail_unless (b == TRUE, "silent was not TRUE"); + g_free (s); g_object_get (G_OBJECT (cur), "sizetype", &i, NULL); fail_unless (i == 3, "sizetype != 3"); @@ -190,6 +191,7 @@ GST_START_TEST (test_launch_lines2) g_object_get (G_OBJECT (cur), "name", &s, NULL); fail_if (s == NULL, "name was NULL"); fail_unless (strcmp (s, "john") == 0, "Name was not 'john'"); + g_free (s); check_pipeline_runs (cur); gst_object_unref (cur);