Mesa (master): glx: Don't use __glXInitialize() when we might be holding __glXLock()

Kristian Høgsberg krh at kemper.freedesktop.org
Tue Jul 20 02:48:18 UTC 2010


Module: Mesa
Branch: master
Commit: 037755122e9011c768e5caa4d4cb83aba783d3e9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=037755122e9011c768e5caa4d4cb83aba783d3e9

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Mon Jul 19 21:00:09 2010 -0400

glx: Don't use __glXInitialize() when we might be holding __glXLock()

---

 src/glx/dri2_glx.c  |    7 ++-----
 src/glx/glxclient.h |    2 ++
 src/glx/glxext.c    |    1 +
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 032d620..6ac03cf 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 65dc26b..207908f 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 320246c..445592f 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;
 




More information about the mesa-commit mailing list