Index: ui/gl/gl_context_glx.cc |
diff --git a/ui/gl/gl_context_glx.cc b/ui/gl/gl_context_glx.cc |
index 30b07c7ca7d78bf00b9a78acc72801a621b70edb..d5ab073e40daf4c48411c10556e030fb469d2361 100644 |
--- a/ui/gl/gl_context_glx.cc |
+++ b/ui/gl/gl_context_glx.cc |
@@ -98,6 +98,7 @@ bool GLContextGLX::MakeCurrent(GLSurface* surface) { |
if (IsCurrent(surface)) |
return true; |
+ ScopedReleaseCurrent release_current; |
TRACE_EVENT0("gpu", "GLContextGLX::MakeCurrent"); |
if (!glXMakeContextCurrent( |
display_, |
@@ -114,18 +115,17 @@ bool GLContextGLX::MakeCurrent(GLSurface* surface) { |
SetCurrent(surface); |
if (!InitializeDynamicBindings()) { |
- ReleaseCurrent(surface); |
Destroy(); |
return false; |
} |
if (!surface->OnMakeCurrent(this)) { |
LOG(ERROR) << "Could not make current."; |
- ReleaseCurrent(surface); |
Destroy(); |
return false; |
} |
+ release_current.Cancel(); |
return true; |
} |