diff options
author | Ian Romanick <idr@us.ibm.com> | 2007-03-06 11:50:33 -0800 |
---|---|---|
committer | Ian Romanick <idr@us.ibm.com> | 2007-03-06 11:50:33 -0800 |
commit | fa8961069c5a99f118deeb5c0217e7c7e1de5f1a (patch) | |
tree | 89bfa3efc22b429f0197b081963d55ef1bdc4614 /src/mesa/main/renderbuffer.c | |
parent | 091be1119050f8cd158161aa3960b1f4260cd790 (diff) | |
parent | a510bc3ee1a696da120c09ee4ec33dc033f671ac (diff) |
Merge branch 'master' of ssh+git://idr@git.freedesktop.org/git/mesa/mesa
Diffstat (limited to 'src/mesa/main/renderbuffer.c')
-rw-r--r-- | src/mesa/main/renderbuffer.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index 6b18d60baf..1cc95a7d3b 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -2089,32 +2089,33 @@ _mesa_remove_renderbuffer(struct gl_framebuffer *fb, GLuint bufferName) if (!rb) return; - _mesa_dereference_renderbuffer(&rb); + _mesa_unreference_renderbuffer(&rb); fb->Attachment[bufferName].Renderbuffer = NULL; } /** - * Decrement the reference count on a renderbuffer and delete it when + * Decrement a renderbuffer object's reference count and delete it when * the refcount hits zero. - * Note: we pass the address of a pointer and set it to NULL if we delete it. + * Note: we pass the address of a pointer. */ void -_mesa_dereference_renderbuffer(struct gl_renderbuffer **rb) +_mesa_unreference_renderbuffer(struct gl_renderbuffer **rb) { - GLboolean deleteFlag = GL_FALSE; + assert(rb); + if (*rb) { + GLboolean deleteFlag = GL_FALSE; - _glthread_LOCK_MUTEX((*rb)->Mutex); - { + _glthread_LOCK_MUTEX((*rb)->Mutex); ASSERT((*rb)->RefCount > 0); (*rb)->RefCount--; deleteFlag = ((*rb)->RefCount == 0); - } - _glthread_UNLOCK_MUTEX((*rb)->Mutex); + _glthread_UNLOCK_MUTEX((*rb)->Mutex); + + if (deleteFlag) + (*rb)->Delete(*rb); - if (deleteFlag) { - (*rb)->Delete(*rb); *rb = NULL; } } |