⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 155368 in webkit


Ignore:
Timestamp:
Sep 9, 2013, 11:47:22 AM (13 years ago)
Author:
Bem Jones-Bey
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):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r155367 r155368  
     12013-09-09  Bem Jones-Bey  <bjonesbe@adobe.com>
     2
     3        Move logical(Left|Right)FloatOffsetForLine methods into FloatingObjects
     4        https://bugs.webkit.org/show_bug.cgi?id=120705
     5
     6        Reviewed by Sam Weinig.
     7
     8        These are the only consumers of the CalculateFloatOffsetAdapter and
     9        the placed floats tree, so it will allow us to reduce the public
     10        interface of FloatingObjects and make the placed floats tree private.
     11
     12        No new tests, no behavior change.
     13
     14        * rendering/RenderBlock.cpp:
     15        (WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
     16        (WebCore::RenderBlock::logicalRightFloatOffsetForLine):
     17        (WebCore::RenderBlock::FloatingObjects::logicalLeftOffset):
     18        (WebCore::RenderBlock::FloatingObjects::logicalRightOffset):
     19        * rendering/RenderBlock.h:
     20        (WebCore::RenderBlock::FloatingObjects::placedFloatsTree):
     21
    1222013-09-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
    223
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r155366 r155368  
    45564556LayoutUnit RenderBlock::logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const
    45574557{
    4558 #if !ENABLE(CSS_SHAPES)
    4559     UNUSED_PARAM(offsetMode);
    4560 #endif
    4561     LayoutUnit left = fixedOffset;
    4562     if (m_floatingObjects && m_floatingObjects->hasLeftObjects()) {
    4563         ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), left);
    4564         m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter);
    4565 
    4566         if (heightRemaining)
    4567             *heightRemaining = adapter.getHeightRemaining();
    4568 
    4569 #if ENABLE(CSS_SHAPES)
    4570         const FloatingObject* outermostFloat = adapter.outermostFloat();
    4571         if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
    4572             if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
    4573                 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight);
    4574                 left += shapeOutside->rightSegmentMarginBoxDelta();
    4575             }
    4576         }
    4577 #endif
    4578     }
    4579 
    4580     return left;
     4558    if (m_floatingObjects && m_floatingObjects->hasLeftObjects())
     4559        return m_floatingObjects->logicalLeftOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining);
     4560
     4561    return fixedOffset;
    45814562}
    45824563
     
    46234604LayoutUnit RenderBlock::logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const
    46244605{
    4625 #if !ENABLE(CSS_SHAPES)
    4626     UNUSED_PARAM(offsetMode);
    4627 #endif
    4628     LayoutUnit right = fixedOffset;
    4629     if (m_floatingObjects && m_floatingObjects->hasRightObjects()) {
    4630         LayoutUnit rightFloatOffset = fixedOffset;
    4631         ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), rightFloatOffset);
    4632         m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter);
    4633 
    4634         if (heightRemaining)
    4635             *heightRemaining = adapter.getHeightRemaining();
    4636 
    4637 #if ENABLE(CSS_SHAPES)
    4638         const FloatingObject* outermostFloat = adapter.outermostFloat();
    4639         if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
    4640             if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
    4641                 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight);
    4642                 rightFloatOffset += shapeOutside->leftSegmentMarginBoxDelta();
    4643             }
    4644         }
    4645 #else
    4646         UNUSED_PARAM(offsetMode);
    4647 #endif
    4648 
    4649         right = min(right, rightFloatOffset);
    4650     }
    4651 
    4652     return right;
     4606    if (m_floatingObjects && m_floatingObjects->hasRightObjects())
     4607        return m_floatingObjects->logicalRightOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining);
     4608
     4609    return fixedOffset;
    46534610}
    46544611
     
    83418298}
    83428299
     8300LayoutUnit RenderBlock::FloatingObjects::logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining)
     8301{
     8302#if !ENABLE(CSS_SHAPES)
     8303    UNUSED_PARAM(offsetMode);
     8304#endif
     8305
     8306    LayoutUnit offset = fixedOffset;
     8307    ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset);
     8308    placedFloatsTree().allOverlapsWithAdapter(adapter);
     8309
     8310    if (heightRemaining)
     8311        *heightRemaining = adapter.getHeightRemaining();
     8312
     8313#if ENABLE(CSS_SHAPES)
     8314    const FloatingObject* outermostFloat = adapter.outermostFloat();
     8315    if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
     8316        if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
     8317            shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight);
     8318            offset += shapeOutside->rightSegmentMarginBoxDelta();
     8319        }
     8320    }
     8321#endif
     8322
     8323    return offset;
     8324}
     8325
     8326LayoutUnit RenderBlock::FloatingObjects::logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining)
     8327{
     8328#if !ENABLE(CSS_SHAPES)
     8329    UNUSED_PARAM(offsetMode);
     8330#endif
     8331
     8332    LayoutUnit offset = fixedOffset;
     8333    ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset);
     8334    placedFloatsTree().allOverlapsWithAdapter(adapter);
     8335
     8336    if (heightRemaining)
     8337        *heightRemaining = adapter.getHeightRemaining();
     8338
     8339#if ENABLE(CSS_SHAPES)
     8340    const FloatingObject* outermostFloat = adapter.outermostFloat();
     8341    if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) {
     8342        if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) {
     8343            shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight);
     8344            offset += shapeOutside->leftSegmentMarginBoxDelta();
     8345        }
     8346    }
     8347#endif
     8348
     8349    return min(fixedOffset, offset);
     8350}
     8351
    83438352template <typename CharacterType>
    83448353static inline TextRun constructTextRunInternal(RenderObject* context, const Font& font, const CharacterType* characters, int length, RenderStyle* style, TextRun::ExpansionBehavior expansion)
  • trunk/Source/WebCore/rendering/RenderBlock.h

    r155302 r155368  
    12651265        bool hasRightObjects() const { return m_rightObjectsCount > 0; }
    12661266        const FloatingObjectSet& set() const { return m_set; }
    1267         const FloatingObjectTree& placedFloatsTree()
    1268         {
    1269             computePlacedFloatsTreeIfNeeded();
    1270             return m_placedFloatsTree;
    1271         }
    12721267        void clearLineBoxTreePointers();
     1268        LayoutUnit logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0);
     1269        LayoutUnit logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0);
    12731270    private:
    12741271        FloatingObjects(const RenderBlock*, bool horizontalWritingMode);
    12751272        void computePlacedFloatsTree();
    1276         inline void computePlacedFloatsTreeIfNeeded()
     1273        const FloatingObjectTree& placedFloatsTree()
    12771274        {
    12781275            if (!m_placedFloatsTree.isInitialized())
    12791276                computePlacedFloatsTree();
     1277            return m_placedFloatsTree;
    12801278        }
    12811279        void increaseObjectsCount(FloatingObject::Type);
Note: See TracChangeset for help on using the changeset viewer.