mesa: Branch 'master'
Brian Paul
brianp at kemper.freedesktop.org
Thu Apr 5 15:28:14 UTC 2007
src/mesa/main/mtypes.h | 2 ++
src/mesa/main/renderbuffer.c | 8 +++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
New commits:
diff-tree 0cae814f362bd7e648535c8ceae12ad286d20d73 (from 33c3739628616c0aaf10e51eae50611169ded0dd)
Author: Brian <brian at yutani.localnet.net>
Date: Thu Apr 5 09:28:09 2007 -0600
temporary add some extra renderbuffer debug code
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index c24e2e3..58efa0b 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2222,6 +2222,8 @@ struct gl_shared_state
*/
struct gl_renderbuffer
{
+#define RB_MAGIC 0xaabbccdd
+ int Magic; /** XXX TEMPORARY DEBUG INFO */
_glthread_Mutex Mutex; /**< for thread safety */
GLuint ClassID; /**< Useful for drivers */
GLuint Name;
diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c
index 1145e91..6f1d7c3 100644
--- a/src/mesa/main/renderbuffer.c
+++ b/src/mesa/main/renderbuffer.c
@@ -1471,6 +1471,7 @@ _mesa_init_renderbuffer(struct gl_render
{
_glthread_INIT_MUTEX(rb->Mutex);
+ rb->Magic = RB_MAGIC;
rb->ClassID = 0;
rb->Name = name;
rb->RefCount = 0;
@@ -2149,21 +2150,26 @@ _mesa_reference_renderbuffer(struct gl_r
GLboolean deleteFlag = GL_FALSE;
struct gl_renderbuffer *oldRb = *ptr;
+ assert(oldRb->Magic == RB_MAGIC);
_glthread_LOCK_MUTEX(oldRb->Mutex);
+ assert(oldRb->Magic == RB_MAGIC);
ASSERT(oldRb->RefCount > 0);
oldRb->RefCount--;
/*printf("RB DECR %p (%d) to %d\n", (void*) oldRb, oldRb->Name, oldRb->RefCount);*/
deleteFlag = (oldRb->RefCount == 0);
_glthread_UNLOCK_MUTEX(oldRb->Mutex);
- if (deleteFlag)
+ if (deleteFlag) {
+ oldRb->Magic = 0; /* now invalid memory! */
oldRb->Delete(oldRb);
+ }
*ptr = NULL;
}
assert(!*ptr);
if (rb) {
+ assert(rb->Magic == RB_MAGIC);
/* reference new renderbuffer */
_glthread_LOCK_MUTEX(rb->Mutex);
rb->RefCount++;
More information about the mesa-commit
mailing list