| Index: Source/core/rendering/RenderLayerRepainter.cpp
|
| diff --git a/Source/core/rendering/RenderLayerRepainter.cpp b/Source/core/rendering/RenderLayerRepainter.cpp
|
| index ad8c16b306c2926dc3ef3ecb53adda788dc144cc..eb95f88d63e044677c4517155ee9bba2d1ba84bf 100644
|
| --- a/Source/core/rendering/RenderLayerRepainter.cpp
|
| +++ b/Source/core/rendering/RenderLayerRepainter.cpp
|
| @@ -203,7 +203,16 @@ 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* ancestor = m_renderer.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
|
|
|