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