From 008f1ab31e8ac6be8f3fb11f19cdf8674be318dd Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 17 Apr 2014 18:28:54 -0700 Subject: [PATCH] glx: Unconditionally clear lastGLContext on loseCurrent(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This hook calls unbindContext in the DRI driver interface, which unsets the dispatch table, regardless of whether the context argument was the current one or not. Signed-off-by: Eric Anholt Reviewed-by: Michel Dänzer Reviewed-by: Adam Jackson --- glx/glxext.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glx/glxext.c b/glx/glxext.c index 98557670a..c0142fe2e 100644 --- a/glx/glxext.c +++ b/glx/glxext.c @@ -135,8 +135,7 @@ DrawableGone(__GLXdrawable * glxPriv, XID xid) (c->drawPriv == glxPriv || c->readPriv == glxPriv)) { /* just force a re-bind the next time through */ (*c->loseCurrent) (c); - if (c == lastGLContext) - lastGLContext = NULL; + lastGLContext = NULL; } if (c->drawPriv == glxPriv) c->drawPriv = NULL; @@ -290,6 +289,7 @@ glxClientCallback(CallbackListPtr *list, void *closure, void *data) next = c->next; if (c->currentClient == pClient) { c->loseCurrent(c); + lastGLContext = NULL; c->currentClient = NULL; __glXFreeContext(c); }