summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/glx/dri2_glx.c7
-rw-r--r--src/glx/glxclient.h2
-rw-r--r--src/glx/glxext.c1
3 files changed, 5 insertions, 5 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 032d620a343..6ac03cf0cfb 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -186,11 +186,8 @@ dri2DestroyDrawable(__GLXDRIdrawable *base)
{
struct dri2_screen *psc = (struct dri2_screen *) base->psc;
struct dri2_drawable *pdraw = (struct dri2_drawable *) base;
- __GLXdisplayPrivate *dpyPriv;
- struct dri2_display *pdp;
-
- dpyPriv = __glXInitialize(base->psc->dpy);
- pdp = (struct dri2_display *)dpyPriv->dri2Display;
+ __GLXdisplayPrivate *dpyPriv = psc->base.display;
+ struct dri2_display *pdp = (struct dri2_display *)dpyPriv->dri2Display;
__glxHashDelete(pdp->dri2Hash, pdraw->base.xDrawable);
(*psc->core->destroyDrawable) (pdraw->driDrawable);
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index 65dc26b3fcc..207908f7e25 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -523,6 +523,8 @@ struct __GLXscreenConfigsRec
*/
const struct glx_context_vtable *direct_context_vtable;
+ __GLXdisplayPrivate *display;
+
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
/**
* Per screen direct rendering interface functions and data.
diff --git a/src/glx/glxext.c b/src/glx/glxext.c
index 320246cc4f2..445592f1a8a 100644
--- a/src/glx/glxext.c
+++ b/src/glx/glxext.c
@@ -759,6 +759,7 @@ glx_screen_init(__GLXscreenConfigs *psc,
psc->scr = screen;
psc->dpy = priv->dpy;
psc->drawHash = __glxHashCreate();
+ psc->display = priv;
if (psc->drawHash == NULL)
return GL_FALSE;