diff options
author | Brian Paul <[email protected]> | 2001-08-31 04:30:14 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2001-08-31 04:30:14 +0000 |
commit | 9bed64cbf193e87e0dba46edf5cfaec267b0d8e6 (patch) | |
tree | c3e06f1dee51b0bf3611c6f81435df88598dcaba | |
parent | 04ec0fd71e3ba758e0ddc950ec68c3af4c58b1ab (diff) |
fixed dangling pointer problem (Chris Burghart)
-rw-r--r-- | docs/VERSIONS | 3 | ||||
-rw-r--r-- | src/mesa/drivers/x11/xm_api.c | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/docs/VERSIONS b/docs/VERSIONS index 2b4ab627366..8e1d85eef76 100644 --- a/docs/VERSIONS +++ b/docs/VERSIONS @@ -1,4 +1,4 @@ -$Id: VERSIONS,v 1.70 2001/08/28 23:12:37 brianp Exp $ +$Id: VERSIONS,v 1.71 2001/08/31 04:30:14 brianp Exp $ Mesa Version History @@ -891,3 +891,4 @@ Mesa Version History - fixed glDrawRangeElements() bug - fixed a glPush/PopAttrib() bug related to texture binding - flat-shaded, textured lines were broken + - fixed a dangling pointer problem in the XMesa code (Chris Burghart) diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index a077749d597..f80a7a70bde 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -1,4 +1,4 @@ -/* $Id: xm_api.c,v 1.26 2001/08/28 22:46:22 brianp Exp $ */ +/* $Id: xm_api.c,v 1.27 2001/08/31 04:30:14 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -2032,6 +2032,10 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer, if (drawBuffer->FXctx) { fxMesaMakeCurrent(drawBuffer->FXctx); + /* Disassociate drawBuffer's current context from drawBuffer */ + if (drawBuffer->xm_context) + drawBuffer->xm_context->xm_buffer = NULL; + /* Disassociate old buffer from this context */ if (c->xm_buffer) c->xm_buffer->xm_context = NULL; @@ -2054,9 +2058,14 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer, return GL_TRUE; } + /* Disassociate drawBuffer's current context from drawBuffer */ + if (drawBuffer->xm_context) + drawBuffer->xm_context->xm_buffer = NULL; + /* Disassociate old buffer with this context */ if (c->xm_buffer) c->xm_buffer->xm_context = NULL; + drawBuffer->xm_context = c; /* Associate the context with this buffer */ c->xm_buffer = drawBuffer; |