Title: [95260] branches/chromium/835/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
Revision
95260
Author
e...@google.com
Date
2011-09-15 19:16:51 -0700 (Thu, 15 Sep 2011)

Log Message

[chromium] Fix updateCompositorResources crash.

Reviewed by Nat Duca.

Landing directly on the branch, due to code divergence.
See: http://codereview.chromium.org/7866017/

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::drawLayers)
(WebCore::LayerRendererChromium::updateCompositorResources)
(WebCore::LayerRendererChromium::drawLayer)

Modified Paths

Diff

Modified: branches/chromium/835/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp (95259 => 95260)


--- branches/chromium/835/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp	2011-09-16 02:16:46 UTC (rev 95259)
+++ branches/chromium/835/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp	2011-09-16 02:16:51 UTC (rev 95260)
@@ -563,6 +563,8 @@
         CCLayerImpl* renderSurfaceLayer = renderSurfaceLayerList[surfaceIndex].get();
         RenderSurfaceChromium* renderSurface = renderSurfaceLayer->renderSurface();
         ASSERT(renderSurface);
+        if (!renderSurface)
+            continue;
 
         renderSurface->setSkipsDraw(true);
 
@@ -964,6 +966,8 @@
         CCLayerImpl* renderSurfaceLayer = renderSurfaceLayerList[surfaceIndex].get();
         RenderSurfaceChromium* renderSurface = renderSurfaceLayer->renderSurface();
         ASSERT(renderSurface);
+        if (!renderSurface)
+            continue;
 
         if (!renderSurface->layerList().size() || !renderSurface->drawOpacity())
             continue;
@@ -972,6 +976,8 @@
         ASSERT(layerList.size());
         for (unsigned layerIndex = 0; layerIndex < layerList.size(); ++layerIndex) {
             CCLayerImpl* ccLayerImpl = layerList[layerIndex].get();
+            if (!ccLayerImpl)
+                continue;
             if (ccLayerImpl->renderSurface() && ccLayerImpl->renderSurface() != renderSurface)
                 continue;
 
@@ -1067,6 +1073,9 @@
 
 void LayerRendererChromium::drawLayer(CCLayerImpl* layer, RenderSurfaceChromium* targetSurface)
 {
+    if (!layer)
+        return;
+
     if (layer->renderSurface() && layer->renderSurface() != targetSurface) {
         layer->renderSurface()->draw(layer->getDrawRect());
         layer->renderSurface()->releaseContentsTexture();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to