Title: [100401] trunk/Source/WebCore
Revision
100401
Author
commit-qu...@webkit.org
Date
2011-11-15 21:12:33 -0800 (Tue, 15 Nov 2011)

Log Message

[chromium] During tear down, prevent the WebGLLayerChromium instance from attempting to stop a timer for a NULL context.
https://bugs.webkit.org/show_bug.cgi?id=72423

Patch by Jeff Timanus <t...@chromium.org> on 2011-11-15
Reviewed by Kenneth Russell.

* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::setDrawingBuffer):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (100400 => 100401)


--- trunk/Source/WebCore/ChangeLog	2011-11-16 05:10:42 UTC (rev 100400)
+++ trunk/Source/WebCore/ChangeLog	2011-11-16 05:12:33 UTC (rev 100401)
@@ -1,3 +1,13 @@
+2011-11-15  Jeff Timanus  <t...@chromium.org>
+
+        [chromium] During tear down, prevent the WebGLLayerChromium instance from attempting to stop a timer for a NULL context.
+        https://bugs.webkit.org/show_bug.cgi?id=72423
+
+        Reviewed by Kenneth Russell.
+
+        * platform/graphics/chromium/WebGLLayerChromium.cpp:
+        (WebCore::WebGLLayerChromium::setDrawingBuffer):
+
 2011-11-15  Mark Hahnenberg  <mhahnenb...@apple.com>
 
         Rebaseline generated WebCore bindings

Modified: trunk/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp (100400 => 100401)


--- trunk/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp	2011-11-16 05:10:42 UTC (rev 100400)
+++ trunk/Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp	2011-11-16 05:12:33 UTC (rev 100401)
@@ -51,6 +51,7 @@
     : CanvasLayerChromium(delegate)
     , m_textureChanged(true)
     , m_textureUpdated(false)
+    , m_drawingBuffer(0)
 {
 }
 
@@ -125,11 +126,16 @@
 void WebGLLayerChromium::setDrawingBuffer(DrawingBuffer* drawingBuffer)
 {
     bool drawingBufferChanged = (m_drawingBuffer != drawingBuffer);
-    m_drawingBuffer = drawingBuffer;
 
-    if (layerTreeHost() && drawingBufferChanged)
-        layerTreeHost()->stopRateLimiter(context());
+    // The GraphicsContext3D used by the layer is the context associated with
+    // the drawing buffer. If the drawing buffer is changing, make sure
+    // to stop the rate limiter on the old context, not the new context from the
+    // new drawing buffer.
+    GraphicsContext3D* context3D = context();
+    if (layerTreeHost() && drawingBufferChanged && context3D)
+        layerTreeHost()->stopRateLimiter(context3D);
 
+    m_drawingBuffer = drawingBuffer;
     if (!m_drawingBuffer)
         return;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to