Index: Source/core/rendering/RenderLayerRepainter.cpp |
diff --git a/Source/core/rendering/RenderLayerRepainter.cpp b/Source/core/rendering/RenderLayerRepainter.cpp |
index ad8c16b306c2926dc3ef3ecb53adda788dc144cc..b29c395781968d0dbb637dd7b49b1b14df192ea7 100644 |
--- a/Source/core/rendering/RenderLayerRepainter.cpp |
+++ b/Source/core/rendering/RenderLayerRepainter.cpp |
@@ -203,7 +203,18 @@ void RenderLayerRepainter::setBackingNeedsRepaintInRect(const LayoutRect& r) |
if (m_renderer.compositingState() == PaintsIntoGroupedBacking) { |
LayoutRect updatedRect(r); |
- RenderLayerModelObject* transformedAncestor = m_renderer.layer()->enclosingTransformedAncestor()->renderer(); |
+ ASSERT(m_renderer.layer()); |
+ ASSERT(m_renderer.layer()->enclosingTransformedAncestor()); |
+ ASSERT(m_renderer.layer()->enclosingTransformedAncestor()->renderer()); |
+ |
+ // FIXME: this defensive code should not have to exist. None of these pointers should ever be 0. See crbug.com/370410. |
+ RenderLayerModelObject* transformedAncestor = 0; |
+ if (RenderLayer* layer = m_renderer.layer()) { |
abarth-chromium
2014/05/08 16:59:34
I don't think it's worth null checking m_renderer.
chrishtr
2014/05/08 17:02:24
Done.
|
+ if (RenderLayer* ancestor = layer->enclosingTransformedAncestor()) |
+ transformedAncestor = ancestor->renderer(); |
+ } |
+ if (!transformedAncestor) |
+ return; |
// If the transformedAncestor is actually the RenderView, we might get |
// confused and think that we can use LayoutState. Ideally, we'd made |