From: Brian Date: Thu, 5 Apr 2007 15:28:09 +0000 (-0600) Subject: temporary add some extra renderbuffer debug code X-Git-Tag: 062012170305~19656 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0cae814f362bd7e648535c8ceae12ad286d20d73;p=profile%2Fivi%2Fmesa.git 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_renderbuffer *rb, GLuint name) { _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_renderbuffer **ptr, 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++;