Chromium Code Reviews| 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 |