diff options
author | marha <marha@users.sourceforge.net> | 2012-12-12 08:39:09 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-12-12 08:39:09 +0100 |
commit | c648afe73ef43a15094508d2dd439e05738735bf (patch) | |
tree | 6d69f2726eb57d22395ffbe0b7733eebc16d1bb1 /mesalib/src/mesa/main/syncobj.c | |
parent | 853b3fc8ee9a4e7f26f87334655a3f5c772502b7 (diff) | |
parent | b395c3c85251d4e8761704d8e3a3c9f9fa5b45cc (diff) | |
download | vcxsrv-c648afe73ef43a15094508d2dd439e05738735bf.tar.gz vcxsrv-c648afe73ef43a15094508d2dd439e05738735bf.tar.bz2 vcxsrv-c648afe73ef43a15094508d2dd439e05738735bf.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
fontconfig mesa pixman xkeyboard-config git update 12 dev 2012
Diffstat (limited to 'mesalib/src/mesa/main/syncobj.c')
-rw-r--r-- | mesalib/src/mesa/main/syncobj.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mesalib/src/mesa/main/syncobj.c b/mesalib/src/mesa/main/syncobj.c index 12e325ccd..f155fea8b 100644 --- a/mesalib/src/mesa/main/syncobj.c +++ b/mesalib/src/mesa/main/syncobj.c @@ -199,10 +199,16 @@ _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) void GLAPIENTRY _mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj) { + struct set_entry *entry; + _glthread_LOCK_MUTEX(ctx->Shared->Mutex); syncObj->RefCount--; if (syncObj->RefCount == 0) { - _mesa_set_remove(ctx->Shared->SyncObjects, syncObj->SetEntry); + entry = _mesa_set_search(ctx->Shared->SyncObjects, + _mesa_hash_pointer(syncObj), + syncObj); + assert (entry != NULL); + _mesa_set_remove(ctx->Shared->SyncObjects, entry); _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex); ctx->Driver.DeleteSyncObject(ctx, syncObj); @@ -290,9 +296,9 @@ _mesa_FenceSync(GLenum condition, GLbitfield flags) ctx->Driver.FenceSync(ctx, syncObj, condition, flags); _glthread_LOCK_MUTEX(ctx->Shared->Mutex); - syncObj->SetEntry = _mesa_set_add(ctx->Shared->SyncObjects, - _mesa_hash_pointer(syncObj), - syncObj); + _mesa_set_add(ctx->Shared->SyncObjects, + _mesa_hash_pointer(syncObj), + syncObj); _glthread_UNLOCK_MUTEX(ctx->Shared->Mutex); return (GLsync) syncObj; |