From 29976a009fbfe05a86f746332e5376162027df8b Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 19 Jul 2012 13:35:34 +0200 Subject: [PATCH] miniobject: fix sharedness check --- gst/gstminiobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c index a4c42b1..14b55de 100644 --- a/gst/gstminiobject.c +++ b/gst/gstminiobject.c @@ -69,7 +69,9 @@ G_LOCK_DEFINE_STATIC (qdata_mutex); static GQuark weak_ref_quark; #define SHARE_ONE (1 << 16) +#define SHARE_TWO (2 << 16) #define SHARE_MASK (~(SHARE_ONE - 1)) +#define IS_SHARED(state) (state >= SHARE_TWO) #define LOCK_ONE (GST_LOCK_FLAG_LAST) #define FLAG_MASK (GST_LOCK_FLAG_LAST - 1) #define LOCK_MASK ((SHARE_ONE - 1) - FLAG_MASK) @@ -191,7 +193,7 @@ gst_mini_object_lock (GstMiniObject * object, GstLockFlags flags) if (access_mode) { /* shared counter > 1 and write access is not allowed */ - if (state > SHARE_ONE && access_mode & GST_LOCK_FLAG_WRITE) + if (access_mode & GST_LOCK_FLAG_WRITE && IS_SHARED (state)) goto lock_failed; if ((state & LOCK_FLAG_MASK) == 0) { -- 2.7.4