OSDN Git Service

Delete thread data at eglReleaseThread.
authorNicolas Capens <capn@google.com>
Mon, 13 Jun 2016 18:35:11 +0000 (14:35 -0400)
committerNicolas Capens <capn@google.com>
Mon, 13 Jun 2016 18:40:44 +0000 (18:40 +0000)
Bug 29279831

Change-Id: If5dbcb3e32e88d1e574d45d3368ed114fd4f85b7
Reviewed-on: https://swiftshader-review.googlesource.com/5581
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
src/OpenGL/libEGL/libEGL.cpp
src/OpenGL/libEGL/main.cpp

index 4d8a169..a85d301 100644 (file)
@@ -485,7 +485,7 @@ EGLBoolean ReleaseThread(void)
 {
        TRACE("()");
 
-       eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE);
+       detachThread();
 
        return success(EGL_TRUE);
 }
index 2479b4e..4597165 100644 (file)
@@ -62,7 +62,10 @@ void detachThread()
 {
        TRACE("()");
 
+       eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE);
+
        delete (Current*)sw::Thread::getLocalStorage(currentTLS);
+       sw::Thread::setLocalStorage(currentTLS, nullptr);
 }
 
 CONSTRUCTOR void attachProcess()