diff --git a/gst/gstpad.c b/gst/gstpad.c index dc1b7609bc..ce987a4580 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -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); } diff --git a/gst/gstpad.h b/gst/gstpad.h index 8fa69f708c..15ead0db0c 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -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