From 725906bb71d57361cbe450f02e6d953a92676c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 16 Feb 2015 23:54:28 +0000 Subject: [PATCH] audiovisualizer: don't use private GMutex implementation details Don't use private GMutex implementation details to check whether it has been freed already or not. Just turn dispose function into finalize function which will only be called once, that way we can just clear the mutex unconditionally. --- ext/libvisual/gstaudiovisualizer.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ext/libvisual/gstaudiovisualizer.c b/ext/libvisual/gstaudiovisualizer.c index 4bc51b325b..598d2fc1ab 100644 --- a/ext/libvisual/gstaudiovisualizer.c +++ b/ext/libvisual/gstaudiovisualizer.c @@ -63,7 +63,7 @@ static void gst_audio_visualizer_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_audio_visualizer_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); -static void gst_audio_visualizer_dispose (GObject * object); +static void gst_audio_visualizer_finalize (GObject * object); static gboolean gst_audio_visualizer_src_negotiate (GstAudioVisualizer * scope); static gboolean gst_audio_visualizer_src_setcaps (GstAudioVisualizer * @@ -549,7 +549,7 @@ gst_audio_visualizer_class_init (GstAudioVisualizerClass * klass) gobject_class->set_property = gst_audio_visualizer_set_property; gobject_class->get_property = gst_audio_visualizer_get_property; - gobject_class->dispose = gst_audio_visualizer_dispose; + gobject_class->finalize = gst_audio_visualizer_finalize; element_class->change_state = GST_DEBUG_FUNCPTR (gst_audio_visualizer_change_state); @@ -656,7 +656,7 @@ gst_audio_visualizer_get_property (GObject * object, guint prop_id, } static void -gst_audio_visualizer_dispose (GObject * object) +gst_audio_visualizer_finalize (GObject * object) { GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object); @@ -673,11 +673,10 @@ gst_audio_visualizer_dispose (GObject * object) gst_buffer_unref (scope->tempbuf); scope->tempbuf = NULL; } - if (scope->config_lock.p) { - g_mutex_clear (&scope->config_lock); - scope->config_lock.p = NULL; - } - G_OBJECT_CLASS (parent_class)->dispose (object); + + g_mutex_clear (&scope->config_lock); + + G_OBJECT_CLASS (parent_class)->finalize (object); } static void