miniobject: refuse write when object is shared

In all cases, refuse to write an object when it is shared by more than one
object (also when the object was locked before).

See https://bugzilla.gnome.org/show_bug.cgi?id=679145
This commit is contained in:
Wim Taymans 2012-07-19 13:20:27 +02:00
parent 8620352efc
commit fd23640001

View file

@ -190,10 +190,11 @@ 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)
goto lock_failed;
if ((state & LOCK_FLAG_MASK) == 0) {
/* shared counter > 1 and write access */
if (state > SHARE_ONE && access_mode & GST_LOCK_FLAG_WRITE)
goto lock_failed;
/* nothing mapped, set access_mode */
newstate |= access_mode;
} else {