[empathy] Allocate GMutex on the stack



commit 2c3892eb9f27b2c8dc8832402ceb06053f36b987
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Tue Oct 25 15:23:30 2011 +0200

    Allocate GMutex on the stack
    
    g_mutex_new() has been deprecated in GLib 2.31.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=662662

 src/empathy-audio-sink.c            |   26 ++++++++--------
 src/empathy-audio-src.c             |   55 ++++++++++++++++++-----------------
 src/empathy-call-window.c           |   18 ++++++------
 src/empathy-streamed-media-window.c |   18 ++++++------
 src/empathy-video-widget.c          |   14 ++++----
 5 files changed, 66 insertions(+), 65 deletions(-)
---
diff --git a/src/empathy-audio-sink.c b/src/empathy-audio-sink.c
index 2968fb5..d48e6af 100644
--- a/src/empathy-audio-sink.c
+++ b/src/empathy-audio-sink.c
@@ -65,7 +65,7 @@ struct _EmpathyGstAudioSinkPrivate
   gboolean echo_cancel;
   gdouble volume;
   gint volume_idle_id;
-  GStaticMutex volume_mutex;
+  GMutex volume_mutex;
 };
 
 #define EMPATHY_GST_AUDIO_SINK_GET_PRIVATE(o) \
@@ -77,7 +77,7 @@ empathy_audio_sink_init (EmpathyGstAudioSink *self)
 {
   self->priv = EMPATHY_GST_AUDIO_SINK_GET_PRIVATE (self);
   self->priv->echo_cancel = TRUE;
-  g_static_mutex_init (&self->priv->volume_mutex);
+  g_mutex_init (&self->priv->volume_mutex);
 }
 
 static GstPad * empathy_audio_sink_request_new_pad (GstElement *self,
@@ -95,9 +95,9 @@ empathy_audio_sink_set_property (GObject *object,
   switch (property_id)
     {
       case PROP_VOLUME:
-        g_static_mutex_lock (&self->priv->volume_mutex);
+        g_mutex_lock (&self->priv->volume_mutex);
         self->priv->volume = g_value_get_double (value);
-        g_static_mutex_unlock (&self->priv->volume_mutex);
+        g_mutex_unlock (&self->priv->volume_mutex);
         break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -129,7 +129,7 @@ empathy_audio_sink_dispose (GObject *object)
     g_source_remove (priv->volume_idle_id);
   priv->volume_idle_id = 0;
 
-  g_static_mutex_free (&self->priv->volume_mutex);
+  g_mutex_clear (&self->priv->volume_mutex);
 
   /* release any references held by the object here */
   if (G_OBJECT_CLASS (empathy_audio_sink_parent_class)->dispose)
@@ -236,9 +236,9 @@ empathy_audio_sink_volume_idle_updated (gpointer user_data)
 {
   EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (user_data);
 
-  g_static_mutex_lock (&self->priv->volume_mutex);
+  g_mutex_lock (&self->priv->volume_mutex);
   self->priv->volume_idle_id = 0;
-  g_static_mutex_unlock (&self->priv->volume_mutex);
+  g_mutex_unlock (&self->priv->volume_mutex);
 
   g_object_notify (G_OBJECT (self), "volume");
 
@@ -253,7 +253,7 @@ empathy_audio_sink_volume_updated (GObject *object,
   EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (user_data);
   gdouble volume;
 
-  g_static_mutex_lock (&self->priv->volume_mutex);
+  g_mutex_lock (&self->priv->volume_mutex);
 
   g_object_get (object, "volume", &volume, NULL);
   if (self->priv->volume == volume)
@@ -265,7 +265,7 @@ empathy_audio_sink_volume_updated (GObject *object,
       empathy_audio_sink_volume_idle_updated, self);
 
 out:
-  g_static_mutex_unlock (&self->priv->volume_mutex);
+  g_mutex_unlock (&self->priv->volume_mutex);
 }
 
 static gboolean
@@ -274,9 +274,9 @@ empathy_audio_sink_volume_idle_setup (gpointer user_data)
   EmpathyGstAudioSink *self = EMPATHY_GST_AUDIO_SINK (user_data);
   gdouble volume;
 
-  g_static_mutex_lock (&self->priv->volume_mutex);
+  g_mutex_lock (&self->priv->volume_mutex);
   self->priv->volume_idle_id = 0;
-  g_static_mutex_unlock (&self->priv->volume_mutex);
+  g_mutex_unlock (&self->priv->volume_mutex);
 
   /* We can't do a bidirection bind as the ::notify comes from another
    * thread, for other bits of empathy it's most simpler if it comes from
@@ -329,11 +329,11 @@ empathy_audio_sink_request_new_pad (GstElement *element,
 
   if (GST_IS_STREAM_VOLUME (self->priv->sink))
     {
-      g_static_mutex_lock (&self->priv->volume_mutex);
+      g_mutex_lock (&self->priv->volume_mutex);
       if (self->priv->volume_idle_id == 0)
         self->priv->volume_idle_id = g_idle_add (
           empathy_audio_sink_volume_idle_setup, self);
-      g_static_mutex_unlock (&self->priv->volume_mutex);
+      g_mutex_unlock (&self->priv->volume_mutex);
     }
   else
     {
diff --git a/src/empathy-audio-src.c b/src/empathy-audio-src.c
index 9a882c1..590c65b 100644
--- a/src/empathy-audio-src.c
+++ b/src/empathy-audio-src.c
@@ -77,7 +77,7 @@ struct _EmpathyGstAudioSrcPrivate
   /* the mixer track on src we follow and adjust */
   GstMixerTrack *track;
 
-  GMutex *lock;
+  GMutex lock;
   guint level_idle_id;
   guint volume_idle_id;
 };
@@ -93,7 +93,7 @@ struct _EmpathyGstAudioSrcPrivate
 static void
 empathy_audio_set_hw_mute (EmpathyGstAudioSrc *self, gboolean mute)
 {
-  g_mutex_lock (self->priv->lock);
+  g_mutex_lock (&self->priv->lock);
   /* If there is no mixer available ignore the setting */
   if (self->priv->track == NULL)
     goto out;
@@ -101,7 +101,7 @@ empathy_audio_set_hw_mute (EmpathyGstAudioSrc *self, gboolean mute)
   gst_mixer_set_mute (GST_MIXER (self->priv->src), self->priv->track, mute);
 
 out:
-  g_mutex_unlock (self->priv->lock);
+  g_mutex_unlock (&self->priv->lock);
   self->priv->mute = mute;
 }
 
@@ -110,13 +110,13 @@ empathy_audio_src_get_hw_mute (EmpathyGstAudioSrc *self)
 {
   gboolean result = self->priv->mute;
 
-  g_mutex_lock (self->priv->lock);
+  g_mutex_lock (&self->priv->lock);
   if (self->priv->track == NULL)
     goto out;
 
   result = GST_MIXER_TRACK_HAS_FLAG (self->priv->track, GST_MIXER_TRACK_MUTE);
 out:
-  g_mutex_unlock (self->priv->lock);
+  g_mutex_unlock (&self->priv->lock);
 
   return result;
 }
@@ -128,7 +128,7 @@ empathy_audio_src_set_hw_volume (EmpathyGstAudioSrc *self,
   gint volumes[MAX_MIC_CHANNELS];
   int i;
 
-  g_mutex_lock (self->priv->lock);
+  g_mutex_lock (&self->priv->lock);
   /* If there is no mixer available ignore the setting */
   if (self->priv->track == NULL)
     goto out;
@@ -140,7 +140,7 @@ empathy_audio_src_set_hw_volume (EmpathyGstAudioSrc *self,
     self->priv->track, volumes);
 
 out:
-   g_mutex_unlock (self->priv->lock);
+   g_mutex_unlock (&self->priv->lock);
 
   self->priv->volume = volume;
 }
@@ -151,7 +151,7 @@ empathy_audio_src_get_hw_volume (EmpathyGstAudioSrc *self)
   gint volumes[MAX_MIC_CHANNELS];
   gdouble result = self->priv->volume;
 
-  g_mutex_lock (self->priv->lock);
+  g_mutex_lock (&self->priv->lock);
   if (self->priv->track == NULL)
     goto out;
 
@@ -160,7 +160,7 @@ empathy_audio_src_get_hw_volume (EmpathyGstAudioSrc *self)
   result = volumes[0]/(gdouble)self->priv->track->max_volume;
 
 out:
-  g_mutex_unlock (self->priv->lock);
+  g_mutex_unlock (&self->priv->lock);
 
   return result;
 }
@@ -347,7 +347,8 @@ empathy_audio_src_init (EmpathyGstAudioSrc *obj)
 
   obj->priv = priv;
   priv->peak_level = -G_MAXDOUBLE;
-  priv->lock = g_mutex_new ();
+  g_mutex_init (&priv->lock);
+
   priv->volume = 1.0;
 
   priv->src = create_src ();
@@ -439,14 +440,14 @@ empathy_audio_src_get_property (GObject *object,
         g_value_set_boolean (value, priv->mute);
         break;
       case PROP_PEAK_LEVEL:
-        g_mutex_lock (priv->lock);
+        g_mutex_lock (&priv->lock);
         g_value_set_double (value, priv->peak_level);
-        g_mutex_unlock (priv->lock);
+        g_mutex_unlock (&priv->lock);
         break;
       case PROP_RMS_LEVEL:
-        g_mutex_lock (priv->lock);
+        g_mutex_lock (&priv->lock);
         g_value_set_double (value, priv->rms_level);
-        g_mutex_unlock (priv->lock);
+        g_mutex_unlock (&priv->lock);
         break;
       case PROP_MICROPHONE:
         g_value_set_uint (value, priv->source_idx);
@@ -552,7 +553,7 @@ empathy_audio_src_finalize (GObject *object)
   EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self);
 
   /* free any data held directly by the object here */
-  g_mutex_free (priv->lock);
+  g_mutex_clear (&priv->lock);
 
   G_OBJECT_CLASS (empathy_audio_src_parent_class)->finalize (object);
 }
@@ -563,13 +564,13 @@ empathy_audio_src_levels_updated (gpointer user_data)
   EmpathyGstAudioSrc *self = EMPATHY_GST_AUDIO_SRC (user_data);
   EmpathyGstAudioSrcPrivate *priv = EMPATHY_GST_AUDIO_SRC_GET_PRIVATE (self);
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
 
   g_signal_emit (self, signals[PEAK_LEVEL_CHANGED], 0, priv->peak_level);
   g_signal_emit (self, signals[RMS_LEVEL_CHANGED], 0, priv->rms_level);
   priv->level_idle_id = 0;
 
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   return FALSE;
 }
@@ -582,9 +583,9 @@ empathy_audio_src_volume_changed (gpointer user_data)
   gdouble volume;
   gboolean mute;
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
   priv->volume_idle_id = 0;
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   volume = empathy_audio_src_get_hw_volume (self);
 
@@ -652,7 +653,7 @@ empathy_audio_src_handle_message (GstBin *bin, GstMessage *message)
           rms = MAX (db, rms);
         }
 
-      g_mutex_lock (priv->lock);
+      g_mutex_lock (&priv->lock);
 
       priv->peak_level = peak;
       priv->rms_level = rms;
@@ -660,7 +661,7 @@ empathy_audio_src_handle_message (GstBin *bin, GstMessage *message)
         priv->level_idle_id = g_idle_add (
           empathy_audio_src_levels_updated, self);
 
-      g_mutex_unlock (priv->lock);
+      g_mutex_unlock (&priv->lock);
     }
   else if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ELEMENT &&
         GST_MESSAGE_SRC (message) == GST_OBJECT (priv->src))
@@ -677,13 +678,13 @@ empathy_audio_src_handle_message (GstBin *bin, GstMessage *message)
           GST_MIXER_MESSAGE_MUTE_TOGGLED)
         gst_mixer_message_parse_mute_toggled (message, &track, NULL);
 
-      g_mutex_lock (priv->lock);
+      g_mutex_lock (&priv->lock);
 
       if (track != NULL && track == priv->track && priv->volume_idle_id == 0)
         priv->volume_idle_id = g_idle_add (
             empathy_audio_src_volume_changed, self);
 
-      g_mutex_unlock (priv->lock);
+      g_mutex_unlock (&priv->lock);
     }
   else if  (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STATE_CHANGED &&
       GST_MESSAGE_SRC (message) == GST_OBJECT (priv->src))
@@ -699,18 +700,18 @@ empathy_audio_src_handle_message (GstBin *bin, GstMessage *message)
        * Empathy. We want to pick up the level pulseaudio saved */
       if (old == GST_STATE_NULL && new == GST_STATE_READY)
         {
-          g_mutex_lock (priv->lock);
+          g_mutex_lock (&priv->lock);
           priv->track = empathy_audio_src_get_track (priv->src);
           if (priv->track != NULL)
             priv->volume_idle_id = g_idle_add (
               empathy_audio_src_volume_changed, self);
-          g_mutex_unlock (priv->lock);
+          g_mutex_unlock (&priv->lock);
         }
       else if (old == GST_STATE_READY && new == GST_STATE_NULL)
         {
-          g_mutex_lock (priv->lock);
+          g_mutex_lock (&priv->lock);
           priv->track = NULL;
-          g_mutex_unlock (priv->lock);
+          g_mutex_unlock (&priv->lock);
         }
     }
 
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 3b05d4d..7ecac28 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -242,7 +242,7 @@ struct _EmpathyCallWindowPriv
   GTimer *timer;
   guint timer_id;
 
-  GMutex *lock;
+  GMutex lock;
   gboolean call_started;
   gboolean sending_video;
   CameraState camera_state;
@@ -1638,7 +1638,7 @@ empathy_call_window_init (EmpathyCallWindow *self)
   g_signal_connect (priv->camera_monitor, "removed",
       G_CALLBACK (empathy_call_window_camera_removed_cb), self);
 
-  priv->lock = g_mutex_new ();
+  g_mutex_init (&priv->lock);
 
   gtk_container_add (GTK_CONTAINER (self), top_vbox);
 
@@ -2371,7 +2371,7 @@ empathy_call_window_finalize (GObject *object)
   disconnect_video_output_motion_handler (self);
 
   /* free any data held directly by the object here */
-  g_mutex_free (priv->lock);
+  g_mutex_clear (&priv->lock);
 
   g_timer_destroy (priv->timer);
 
@@ -2544,7 +2544,7 @@ empathy_call_window_disconnected (EmpathyCallWindow *self,
 
   if (could_reset_pipeline)
     {
-      g_mutex_lock (priv->lock);
+      g_mutex_lock (&priv->lock);
 
       g_timer_stop (priv->timer);
 
@@ -2552,7 +2552,7 @@ empathy_call_window_disconnected (EmpathyCallWindow *self,
         g_source_remove (priv->timer_id);
       priv->timer_id = 0;
 
-      g_mutex_unlock (priv->lock);
+      g_mutex_unlock (&priv->lock);
 
       if (!restart)
         /* We are about to destroy the window, no need to update it or create
@@ -3202,12 +3202,12 @@ empathy_call_window_state_changed_cb (EmpathyCallHandler *handler,
 
   g_object_unref (call);
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
 
   priv->timer_id = g_timeout_add_seconds (1,
     empathy_call_window_update_timer, self);
 
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   empathy_call_window_update_timer (self);
 
@@ -3281,7 +3281,7 @@ empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
 
   GstPad *pad;
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
 
   g_object_get (content, "media-type", &media_type, NULL);
 
@@ -3348,7 +3348,7 @@ empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
     }
 
 
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   return TRUE;
 }
diff --git a/src/empathy-streamed-media-window.c b/src/empathy-streamed-media-window.c
index deaae10..3bcb0e4 100644
--- a/src/empathy-streamed-media-window.c
+++ b/src/empathy-streamed-media-window.c
@@ -201,7 +201,7 @@ struct _EmpathyStreamedMediaWindowPriv
   GtkWidget *video_brightness;
   GtkWidget *video_gamma;
 
-  GMutex *lock;
+  GMutex lock;
   gboolean call_started;
   gboolean sending_video;
   CameraState camera_state;
@@ -1035,7 +1035,7 @@ empathy_streamed_media_window_init (EmpathyStreamedMediaWindow *self)
 
   gtk_action_set_sensitive (priv->menu_fullscreen, FALSE);
 
-  priv->lock = g_mutex_new ();
+  g_mutex_init (&priv->lock);
 
   gtk_container_add (GTK_CONTAINER (self), top_vbox);
 
@@ -1727,7 +1727,7 @@ empathy_streamed_media_window_finalize (GObject *object)
   disconnect_video_output_motion_handler (self);
 
   /* free any data held directly by the object here */
-  g_mutex_free (priv->lock);
+  g_mutex_clear (&priv->lock);
 
   g_timer_destroy (priv->timer);
 
@@ -1870,7 +1870,7 @@ empathy_streamed_media_window_disconnected (EmpathyStreamedMediaWindow *self,
 
   if (could_reset_pipeline)
     {
-      g_mutex_lock (priv->lock);
+      g_mutex_lock (&priv->lock);
 
       g_timer_stop (priv->timer);
 
@@ -1878,7 +1878,7 @@ empathy_streamed_media_window_disconnected (EmpathyStreamedMediaWindow *self,
         g_source_remove (priv->timer_id);
       priv->timer_id = 0;
 
-      g_mutex_unlock (priv->lock);
+      g_mutex_unlock (&priv->lock);
 
       if (!restart)
         /* We are about to destroy the window, no need to update it or create
@@ -2375,12 +2375,12 @@ empathy_streamed_media_window_connected (gpointer user_data)
 
   g_object_unref (call);
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
 
   priv->timer_id = g_timeout_add_seconds (1,
     empathy_streamed_media_window_update_timer, self);
 
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   empathy_streamed_media_window_update_timer (self);
 
@@ -2401,7 +2401,7 @@ empathy_streamed_media_window_src_added_cb (EmpathyStreamedMediaHandler *handler
 
   GstPad *pad;
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
 
   if (priv->call_state != CONNECTED)
     {
@@ -2467,7 +2467,7 @@ empathy_streamed_media_window_src_added_cb (EmpathyStreamedMediaHandler *handler
     }
 
 
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 
   return TRUE;
 }
diff --git a/src/empathy-video-widget.c b/src/empathy-video-widget.c
index adca53e..9cf31d9 100644
--- a/src/empathy-video-widget.c
+++ b/src/empathy-video-widget.c
@@ -78,7 +78,7 @@ struct _EmpathyVideoWidgetPriv
   gboolean flip_video;
   guintptr xid;
 
-  GMutex *lock;
+  GMutex lock;
 };
 
 #define GET_PRIV(o)     (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
@@ -90,7 +90,7 @@ empathy_video_widget_init (EmpathyVideoWidget *obj)
   EmpathyVideoWidgetPriv *priv = GET_PRIV (obj);
   GdkRGBA black;
 
-  priv->lock = g_mutex_new ();
+  g_mutex_init (&priv->lock);
 
   priv->notifier = fs_element_added_notifier_new ();
   g_signal_connect (priv->notifier, "element-added",
@@ -367,7 +367,7 @@ empathy_video_widget_finalize (GObject *object)
   EmpathyVideoWidgetPriv *priv = GET_PRIV (self);
 
   /* free any data held directly by the object here */
-  g_mutex_free (priv->lock);
+  g_mutex_clear (&priv->lock);
 
   G_OBJECT_CLASS (empathy_video_widget_parent_class)->finalize (object);
 }
@@ -400,9 +400,9 @@ empathy_video_widget_element_set_sink_properties (EmpathyVideoWidget *self)
 {
   EmpathyVideoWidgetPriv *priv = GET_PRIV (self);
 
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
   empathy_video_widget_element_set_sink_properties_unlocked (self);
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 }
 
 static void
@@ -412,7 +412,7 @@ empathy_video_widget_element_added_cb (FsElementAddedNotifier *notifier,
   EmpathyVideoWidgetPriv *priv = GET_PRIV (self);
 
   /* We assume the overlay is the sink */
-  g_mutex_lock (priv->lock);
+  g_mutex_lock (&priv->lock);
   if (priv->overlay == NULL && GST_IS_X_OVERLAY (element))
     {
       priv->overlay = element;
@@ -421,7 +421,7 @@ empathy_video_widget_element_added_cb (FsElementAddedNotifier *notifier,
       empathy_video_widget_element_set_sink_properties_unlocked (self);
       gst_x_overlay_expose (GST_X_OVERLAY (priv->overlay));
     }
-  g_mutex_unlock (priv->lock);
+  g_mutex_unlock (&priv->lock);
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]