Title: [116585] trunk/Source/WebCore
Revision
116585
Author
[email protected]
Date
2012-05-09 17:34:48 -0700 (Wed, 09 May 2012)

Log Message

[Cairo] GLContextGLX releases the context with an uninitialized display
https://bugs.webkit.org/show_bug.cgi?id=86039

Patch by Martin Robinson <[email protected]> on 2012-05-09
Reviewed by Philippe Normand.

No new tests. This does not change behavior on most machines, but has
the potential to prevent a pretty nasty crash on others.

Use the shared display to release GLX contexts instead of the uninitialized
m_display member.

* platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::~GLContextGLX): Release the display with the shared
display.
* platform/graphics/glx/GLContextGLX.h:
(GLContextGLX): Remove the m_display member.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (116584 => 116585)


--- trunk/Source/WebCore/ChangeLog	2012-05-10 00:32:55 UTC (rev 116584)
+++ trunk/Source/WebCore/ChangeLog	2012-05-10 00:34:48 UTC (rev 116585)
@@ -1,3 +1,22 @@
+2012-05-09  Martin Robinson  <[email protected]>
+
+        [Cairo] GLContextGLX releases the context with an uninitialized display
+        https://bugs.webkit.org/show_bug.cgi?id=86039
+
+        Reviewed by Philippe Normand.
+
+        No new tests. This does not change behavior on most machines, but has
+        the potential to prevent a pretty nasty crash on others.
+
+        Use the shared display to release GLX contexts instead of the uninitialized
+        m_display member.
+
+        * platform/graphics/glx/GLContextGLX.cpp:
+        (WebCore::GLContextGLX::~GLContextGLX): Release the display with the shared
+        display.
+        * platform/graphics/glx/GLContextGLX.h:
+        (GLContextGLX): Remove the m_display member.
+
 2012-05-09  Tony Gentilcore  <[email protected]>
 
         Subresources loaded after a reload completes shouldn't be revalidated.

Modified: trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp (116584 => 116585)


--- trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp	2012-05-10 00:32:55 UTC (rev 116584)
+++ trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp	2012-05-10 00:34:48 UTC (rev 116585)
@@ -240,8 +240,8 @@
         // This may be necessary to prevent crashes with NVidia's closed source drivers. Originally
         // from Mozilla's 3D canvas implementation at: http://bitbucket.org/ilmari/canvas3d/
         glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
-        glXMakeCurrent(m_display, None, None);
-        glXDestroyContext(m_display, m_context);
+        glXMakeCurrent(sharedDisplay(), None, None);
+        glXDestroyContext(sharedDisplay(), m_context);
     }
 
     if (m_pbuffer) {

Modified: trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.h (116584 => 116585)


--- trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.h	2012-05-10 00:32:55 UTC (rev 116584)
+++ trunk/Source/WebCore/platform/graphics/glx/GLContextGLX.h	2012-05-10 00:34:48 UTC (rev 116585)
@@ -63,7 +63,6 @@
     GLContextGLX(GLXContext, Pixmap, GLXPixmap);
 
     GLXContext m_context;
-    Display* m_display;
     XID m_window;
     GLXPbuffer m_pbuffer;
     Pixmap m_pixmap;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to