Title: [155368] trunk/Source/WebCore
Revision
155368
Author
[email protected]
Date
2013-09-09 11:47:22 -0700 (Mon, 09 Sep 2013)

Log Message

Move logical(Left|Right)FloatOffsetForLine methods into FloatingObjects
https://bugs.webkit.org/show_bug.cgi?id=120705

Reviewed by Sam Weinig.

These are the only consumers of the CalculateFloatOffsetAdapter and
the placed floats tree, so it will allow us to reduce the public
interface of FloatingObjects and make the placed floats tree private.

No new tests, no behavior change.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
(WebCore::RenderBlock::logicalRightFloatOffsetForLine):
(WebCore::RenderBlock::FloatingObjects::logicalLeftOffset):
(WebCore::RenderBlock::FloatingObjects::logicalRightOffset):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::FloatingObjects::placedFloatsTree):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (155367 => 155368)


--- trunk/Source/WebCore/ChangeLog	2013-09-09 18:40:04 UTC (rev 155367)
+++ trunk/Source/WebCore/ChangeLog	2013-09-09 18:47:22 UTC (rev 155368)
@@ -1,3 +1,24 @@
+2013-09-09  Bem Jones-Bey  <[email protected]>
+
+        Move logical(Left|Right)FloatOffsetForLine methods into FloatingObjects
+        https://bugs.webkit.org/show_bug.cgi?id=120705
+
+        Reviewed by Sam Weinig.
+
+        These are the only consumers of the CalculateFloatOffsetAdapter and
+        the placed floats tree, so it will allow us to reduce the public
+        interface of FloatingObjects and make the placed floats tree private.
+
+        No new tests, no behavior change.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
+        (WebCore::RenderBlock::logicalRightFloatOffsetForLine):
+        (WebCore::RenderBlock::FloatingObjects::logicalLeftOffset):
+        (WebCore::RenderBlock::FloatingObjects::logicalRightOffset):
+        * rendering/RenderBlock.h:
+        (WebCore::RenderBlock::FloatingObjects::placedFloatsTree):
+
 2013-09-09  Christophe Dumez  <[email protected]>
 
         Add support for BeforeUnloadEvent interface

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (155367 => 155368)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2013-09-09 18:40:04 UTC (rev 155367)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2013-09-09 18:47:22 UTC (rev 155368)
@@ -4555,29 +4555,10 @@
 
 LayoutUnit RenderBlock::logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const
 {
-#if !ENABLE(CSS_SHAPES)
-    UNUSED_PARAM(offsetMode);
-#endif
-    LayoutUnit left = fixedOffset;
-    if (m_floatingObjects && m_floatingObjects->hasLeftObjects()) {
-        ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), left);
-        m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter);
+    if (m_floatingObjects && m_floatingObjects->hasLeftObjects())
+        return m_floatingObjects->logicalLeftOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining);
 
-        if (heightRemaining)
-            *heightRemaining = adapter.getHeightRemaining();
-
-#if ENABLE(CSS_SHAPES)
-        const FloatingObject* outermostFloat = adapter.outermostFloat();
-        if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
-            if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
-                shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight);
-                left += shapeOutside->rightSegmentMarginBoxDelta();
-            }
-        }
-#endif
-    }
-
-    return left;
+    return fixedOffset;
 }
 
 LayoutUnit RenderBlock::adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const
@@ -4622,34 +4603,10 @@
 
 LayoutUnit RenderBlock::logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const
 {
-#if !ENABLE(CSS_SHAPES)
-    UNUSED_PARAM(offsetMode);
-#endif
-    LayoutUnit right = fixedOffset;
-    if (m_floatingObjects && m_floatingObjects->hasRightObjects()) {
-        LayoutUnit rightFloatOffset = fixedOffset;
-        ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), rightFloatOffset);
-        m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter);
+    if (m_floatingObjects && m_floatingObjects->hasRightObjects())
+        return m_floatingObjects->logicalRightOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining);
 
-        if (heightRemaining)
-            *heightRemaining = adapter.getHeightRemaining();
-
-#if ENABLE(CSS_SHAPES)
-        const FloatingObject* outermostFloat = adapter.outermostFloat();
-        if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
-            if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
-                shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight);
-                rightFloatOffset += shapeOutside->leftSegmentMarginBoxDelta();
-            }
-        }
-#else
-        UNUSED_PARAM(offsetMode);
-#endif
-
-        right = min(right, rightFloatOffset);
-    }
-
-    return right;
+    return fixedOffset;
 }
 
 LayoutUnit RenderBlock::adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const
@@ -8340,6 +8297,58 @@
     }
 }
 
+LayoutUnit RenderBlock::FloatingObjects::logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining)
+{
+#if !ENABLE(CSS_SHAPES)
+    UNUSED_PARAM(offsetMode);
+#endif
+
+    LayoutUnit offset = fixedOffset;
+    ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset);
+    placedFloatsTree().allOverlapsWithAdapter(adapter);
+
+    if (heightRemaining)
+        *heightRemaining = adapter.getHeightRemaining();
+
+#if ENABLE(CSS_SHAPES)
+    const FloatingObject* outermostFloat = adapter.outermostFloat();
+    if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
+        if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
+            shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight);
+            offset += shapeOutside->rightSegmentMarginBoxDelta();
+        }
+    }
+#endif
+
+    return offset;
+}
+
+LayoutUnit RenderBlock::FloatingObjects::logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining)
+{
+#if !ENABLE(CSS_SHAPES)
+    UNUSED_PARAM(offsetMode);
+#endif
+
+    LayoutUnit offset = fixedOffset;
+    ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset);
+    placedFloatsTree().allOverlapsWithAdapter(adapter);
+
+    if (heightRemaining)
+        *heightRemaining = adapter.getHeightRemaining();
+
+#if ENABLE(CSS_SHAPES)
+    const FloatingObject* outermostFloat = adapter.outermostFloat();
+    if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
+        if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
+            shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight);
+            offset += shapeOutside->leftSegmentMarginBoxDelta();
+        }
+    }
+#endif
+
+    return min(fixedOffset, offset);
+}
+
 template <typename CharacterType>
 static inline TextRun constructTextRunInternal(RenderObject* context, const Font& font, const CharacterType* characters, int length, RenderStyle* style, TextRun::ExpansionBehavior expansion)
 {

Modified: trunk/Source/WebCore/rendering/RenderBlock.h (155367 => 155368)


--- trunk/Source/WebCore/rendering/RenderBlock.h	2013-09-09 18:40:04 UTC (rev 155367)
+++ trunk/Source/WebCore/rendering/RenderBlock.h	2013-09-09 18:47:22 UTC (rev 155368)
@@ -1264,19 +1264,17 @@
         bool hasLeftObjects() const { return m_leftObjectsCount > 0; }
         bool hasRightObjects() const { return m_rightObjectsCount > 0; }
         const FloatingObjectSet& set() const { return m_set; }
-        const FloatingObjectTree& placedFloatsTree()
-        {
-            computePlacedFloatsTreeIfNeeded();
-            return m_placedFloatsTree; 
-        }
         void clearLineBoxTreePointers();
+        LayoutUnit logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0);
+        LayoutUnit logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0);
     private:
         FloatingObjects(const RenderBlock*, bool horizontalWritingMode);
         void computePlacedFloatsTree();
-        inline void computePlacedFloatsTreeIfNeeded()
+        const FloatingObjectTree& placedFloatsTree()
         {
             if (!m_placedFloatsTree.isInitialized())
                 computePlacedFloatsTree();
+            return m_placedFloatsTree;
         }
         void increaseObjectsCount(FloatingObject::Type);
         void decreaseObjectsCount(FloatingObject::Type);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to