Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 99e2c5dddab1c8fa92c297fa344fa40f9dda6a6a..06051c9ac04807c3a4d95ec7f79a0fd7ba0b16c6 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -2249,19 +2249,22 @@ LayoutRect RenderLayer::logicalBoundingBox() const |
return result; |
} |
-LayoutRect RenderLayer::flippedLogicalBoundingBox() const |
+static inline LayoutRect flippedLogicalBoundingBox(LayoutRect boundingBox, RenderObject* renderer) |
pdr.
2014/10/21 22:11:26
I don't understand the purpose of making this a st
eae
2014/10/21 22:21:46
Allows it to be inlined easier. It is a very hot f
pdr.
2014/10/21 22:38:15
Could we just make this inline then?
|
{ |
- LayoutRect result = logicalBoundingBox(); |
- if (m_renderer->isBox()) |
- renderBox()->flipForWritingMode(result); |
+ if (!UNLIKELY(renderer->document().hasVerticalWritingMode())) |
+ return boundingBox; |
+ |
+ LayoutRect result = boundingBox; |
+ if (renderer->isBox()) |
+ toRenderBox(renderer)->flipForWritingMode(result); |
else |
- m_renderer->containingBlock()->flipForWritingMode(result); |
+ renderer->containingBlock()->flipForWritingMode(result); |
return result; |
} |
LayoutRect RenderLayer::physicalBoundingBox(const RenderLayer* ancestorLayer, const LayoutPoint* offsetFromRoot) const |
{ |
- LayoutRect result = flippedLogicalBoundingBox(); |
+ LayoutRect result = flippedLogicalBoundingBox(logicalBoundingBox(), renderer()); |
if (offsetFromRoot) |
result.moveBy(*offsetFromRoot); |
else |
@@ -2274,11 +2277,16 @@ LayoutRect RenderLayer::fragmentsBoundingBox(const RenderLayer* ancestorLayer) c |
if (!enclosingPaginationLayer()) |
return physicalBoundingBox(ancestorLayer); |
- LayoutRect result = flippedLogicalBoundingBox(); |
+ LayoutRect result = flippedLogicalBoundingBox(logicalBoundingBox(), renderer()); |
convertFromFlowThreadToVisualBoundingBoxInAncestor(this, ancestorLayer, result); |
return result; |
} |
+LayoutRect RenderLayer::boundingBoxForCompositingOverlapTest() const |
+{ |
+ return overlapBoundsIncludeChildren() ? boundingBoxForCompositing() : flippedLogicalBoundingBox(logicalBoundingBox(), renderer()); |
+} |
+ |
static void expandRectForReflectionAndStackingChildren(const RenderLayer* ancestorLayer, RenderLayer::CalculateBoundsOptions options, LayoutRect& result) |
{ |
if (ancestorLayer->reflectionInfo() && !ancestorLayer->reflectionInfo()->reflectionLayer()->hasCompositedLayerMapping()) |