pad: inline the recursive stream lock
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 2 Jun 2011 11:46:26 +0000 (13:46 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 2 Jun 2011 11:46:26 +0000 (13:46 +0200)
gst/gstpad.c
gst/gstpad.h

index dc1b760..ce987a4 100644 (file)
@@ -324,9 +324,7 @@ gst_pad_init (GstPad * pad)
 
   GST_PAD_SET_FLUSHING (pad);
 
-  /* FIXME 0.11: Store this directly in the instance struct */
-  pad->stream_rec_lock = g_slice_new (GStaticRecMutex);
-  g_static_rec_mutex_init (pad->stream_rec_lock);
+  g_static_rec_mutex_init (&pad->stream_rec_lock);
 
   pad->block_cond = g_cond_new ();
 
@@ -473,15 +471,8 @@ gst_pad_finalize (GObject * object)
     gst_object_unref (task);
   }
 
-  if (pad->stream_rec_lock) {
-    g_static_rec_mutex_free (pad->stream_rec_lock);
-    g_slice_free (GStaticRecMutex, pad->stream_rec_lock);
-    pad->stream_rec_lock = NULL;
-  }
-  if (pad->block_cond) {
-    g_cond_free (pad->block_cond);
-    pad->block_cond = NULL;
-  }
+  g_static_rec_mutex_free (&pad->stream_rec_lock);
+  g_cond_free (pad->block_cond);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
index 8fa69f7..15ead0d 100644 (file)
@@ -647,7 +647,7 @@ struct _GstPad {
 
   /*< public >*/ /* with STREAM_LOCK */
   /* streaming rec_lock */
-  GStaticRecMutex              *stream_rec_lock;
+  GStaticRecMutex               stream_rec_lock;
   GstTask                      *task;
 
   /*< public >*/ /* with LOCK */
@@ -764,7 +764,7 @@ struct _GstPadClass {
  * Get the stream lock of @pad. The stream lock is protecting the
  * resources used in the data processing functions of @pad.
  */
-#define GST_PAD_GET_STREAM_LOCK(pad)    (GST_PAD_CAST(pad)->stream_rec_lock)
+#define GST_PAD_GET_STREAM_LOCK(pad)    (&(GST_PAD_CAST(pad)->stream_rec_lock))
 /**
  * GST_PAD_STREAM_LOCK:
  * @pad: a #GstPad