Index: third_party/WebKit/Source/core/layout/LayoutGeometryMap.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutGeometryMap.cpp b/third_party/WebKit/Source/core/layout/LayoutGeometryMap.cpp |
index 989d93ade5b931da4d7d54a6beb988c1c6ba09c8..9c55011fd10d037355ccbe7e0b74509159f730f1 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutGeometryMap.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutGeometryMap.cpp |
@@ -190,9 +190,9 @@ void LayoutGeometryMap::pushMappingsToAncestor( |
isTopmostLayoutView(m_mapping[0].m_layoutObject)); |
} |
-static bool canMapBetweenLayoutObjects(const LayoutObject* layoutObject, |
- const LayoutObject* ancestor) { |
- for (const LayoutObject* current = layoutObject;; |
+static bool canMapBetweenLayoutObjects(const LayoutObject& layoutObject, |
+ const LayoutObject& ancestor) { |
+ for (const LayoutObject* current = &layoutObject;; |
current = current->parent()) { |
const ComputedStyle& style = current->styleRef(); |
if (style.position() == EPosition::kFixed || |
@@ -203,7 +203,7 @@ static bool canMapBetweenLayoutObjects(const LayoutObject* layoutObject, |
current->isLayoutFlowThread() || current->isSVGRoot()) |
return false; |
- if (current == ancestor) |
+ if (current == &ancestor) |
break; |
if (current->isFloatingWithNonContainingBlockParent()) |
@@ -216,18 +216,18 @@ static bool canMapBetweenLayoutObjects(const LayoutObject* layoutObject, |
void LayoutGeometryMap::pushMappingsToAncestor( |
const PaintLayer* layer, |
const PaintLayer* ancestorLayer) { |
- const LayoutObject* layoutObject = layer->layoutObject(); |
+ const LayoutObject& layoutObject = layer->layoutObject(); |
bool crossDocument = |
ancestorLayer && |
- layer->layoutObject()->frame() != ancestorLayer->layoutObject()->frame(); |
+ layoutObject.frame() != ancestorLayer->layoutObject().frame(); |
ASSERT(!crossDocument || m_mapCoordinatesFlags & TraverseDocumentBoundaries); |
// We have to visit all the layoutObjects to detect flipped blocks. This might |
// defeat the gains from mapping via layers. |
bool canConvertInLayerTree = |
(ancestorLayer && !crossDocument) |
- ? canMapBetweenLayoutObjects(layer->layoutObject(), |
+ ? canMapBetweenLayoutObjects(layoutObject, |
ancestorLayer->layoutObject()) |
: false; |
@@ -242,21 +242,21 @@ void LayoutGeometryMap::pushMappingsToAncestor( |
// The LayoutView must be pushed first. |
if (!m_mapping.size()) { |
- ASSERT(ancestorLayer->layoutObject()->isLayoutView()); |
- pushMappingsToAncestor(ancestorLayer->layoutObject(), 0); |
+ DCHECK(ancestorLayer->layoutObject().isLayoutView()); |
+ pushMappingsToAncestor(&ancestorLayer->layoutObject(), 0); |
} |
AutoReset<size_t> positionChange(&m_insertionPosition, m_mapping.size()); |
bool accumulatingTransform = |
- layer->layoutObject()->style()->preserves3D() || |
- ancestorLayer->layoutObject()->style()->preserves3D(); |
- push(layoutObject, toLayoutSize(layerOffset), |
+ layoutObject.style()->preserves3D() || |
+ ancestorLayer->layoutObject().style()->preserves3D(); |
+ push(&layoutObject, toLayoutSize(layerOffset), |
accumulatingTransform ? AccumulatingTransform : 0); |
return; |
} |
const LayoutBoxModelObject* ancestorLayoutObject = |
- ancestorLayer ? ancestorLayer->layoutObject() : 0; |
- pushMappingsToAncestor(layoutObject, ancestorLayoutObject); |
+ ancestorLayer ? &ancestorLayer->layoutObject() : 0; |
+ pushMappingsToAncestor(&layoutObject, ancestorLayoutObject); |
} |
void LayoutGeometryMap::push(const LayoutObject* layoutObject, |
@@ -328,7 +328,7 @@ void LayoutGeometryMap::popMappingsToAncestor( |
void LayoutGeometryMap::popMappingsToAncestor(const PaintLayer* ancestorLayer) { |
const LayoutBoxModelObject* ancestorLayoutObject = |
- ancestorLayer ? ancestorLayer->layoutObject() : 0; |
+ ancestorLayer ? &ancestorLayer->layoutObject() : 0; |
popMappingsToAncestor(ancestorLayoutObject); |
} |