From: Chia-I Wu Date: Tue, 6 Apr 2010 03:51:25 +0000 (+0800) Subject: egl: Unbind the old context in _eglBindContext. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=848945e5d63ff8327f5a1a6e61e66fcdab3ac8fc;p=mesa.git egl: Unbind the old context in _eglBindContext. The last commit incorrectly moved the code under an "else". --- diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c index 80e316a10b1..d5a1e79a994 100644 --- a/src/egl/main/eglcontext.c +++ b/src/egl/main/eglcontext.c @@ -378,19 +378,18 @@ _eglBindContext(_EGLContext **ctx, _EGLSurface **draw, _EGLSurface **read) /* bind the new context */ oldCtx = _eglBindContextToThread(newCtx, t); - if (newCtx) { + if (newCtx) _eglBindContextToSurfaces(newCtx, draw, read); - } - else { + + /* unbind the old context from its binding surfaces */ + if (oldCtx && oldCtx != newCtx) { assert(!*draw && !*read); - if (oldCtx) { - *draw = oldCtx->DrawSurface; - *read = oldCtx->ReadSurface; - assert(*draw && *read); - /* unbind the old context from its surfaces */ - _eglBindContextToSurfaces(NULL, draw, read); - } + *draw = oldCtx->DrawSurface; + *read = oldCtx->ReadSurface; + assert(*draw && *read); + + _eglBindContextToSurfaces(NULL, draw, read); } *ctx = oldCtx;