Changeset 31127 in webkit


Ignore:
Timestamp:
Mar 18, 2008 9:13:31 AM (16 years ago)
Author:
mitz@apple.com
Message:

2008-03-18 Dan Bernstein <mitz@apple.com>

Reviewed by Darin Adler.

  • eliminate RenderFlow::m_clear
  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): Removed code to set m_clear. (WebCore::RenderBlock::newLine): Added a 'clear' parameter.
  • rendering/RenderBlock.h:
  • rendering/RenderFlow.h: (WebCore::RenderFlow::RenderFlow): Removed initialization of m_clear.
  • rendering/bidi.cpp: (WebCore::RenderBlock::layoutInlineChildren): Added a local 'clear' variable, passing a pointer to it to findNextLineBreak() and its value to newLine(). (WebCore::RenderBlock::findNextLineBreak): Added a 'clear' parameter, which this method adjusts when it encounters a <br>.
Location:
trunk/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r31126 r31127  
     12008-03-18  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        - eliminate RenderFlow::m_clear
     6
     7        * rendering/RenderBlock.cpp:
     8        (WebCore::RenderBlock::layoutBlock): Removed code to set m_clear.
     9        (WebCore::RenderBlock::newLine): Added a 'clear' parameter.
     10        * rendering/RenderBlock.h:
     11        * rendering/RenderFlow.h:
     12        (WebCore::RenderFlow::RenderFlow): Removed initialization of m_clear.
     13        * rendering/bidi.cpp:
     14        (WebCore::RenderBlock::layoutInlineChildren): Added a local 'clear'
     15        variable, passing a pointer to it to findNextLineBreak() and its value
     16        to newLine().
     17        (WebCore::RenderBlock::findNextLineBreak): Added a 'clear' parameter,
     18        which this method adjusts when it encounters a <br>.
     19
    1202008-03-18  Simon Hausmann  <hausmann@webkit.org>
    221
  • trunk/WebCore/rendering/RenderBlock.cpp

    r31117 r31127  
    542542    m_height = 0;
    543543    m_overflowHeight = 0;
    544     m_clearStatus = CNONE;
    545544
    546545    // We use four values, maxTopPos, maxPosNeg, maxBottomPos, and maxBottomNeg, to track
     
    22492248}
    22502249
    2251 void RenderBlock::newLine()
     2250void RenderBlock::newLine(EClear clear)
    22522251{
    22532252    positionNewFloats();
    22542253    // set y position
    22552254    int newY = 0;
    2256     switch(m_clearStatus)
     2255    switch(clear)
    22572256    {
    22582257        case CLEFT:
     
    22692268    if (m_height < newY)
    22702269        m_height = newY;
    2271     m_clearStatus = CNONE;
    22722270}
    22732271
  • trunk/WebCore/rendering/RenderBlock.h

    r31117 r31127  
    149149    int skipWhitespace(BidiState&);
    150150    void fitBelowFloats(int widthToFit, int& availableWidth);
    151     BidiIterator findNextLineBreak(BidiState&);
     151    BidiIterator findNextLineBreak(BidiState&, EClear* clear = 0);
    152152    RootInlineBox* constructLine(unsigned runCount, BidiRun* firstRun, BidiRun* lastRun, bool lastLine, RenderObject* endObject);
    153153    InlineFlowBox* createLineBoxes(RenderObject*);
     
    311311
    312312protected:
    313     void newLine();
     313    void newLine(EClear);
    314314    virtual bool hasLineIfEmpty() const;
    315315    bool layoutOnlyPositionedObjects();
  • trunk/WebCore/rendering/RenderFlow.h

    r30603 r31127  
    4747        , m_childrenInline(true)
    4848        , m_firstLine(false)
    49         , m_clearStatus(CNONE)
    5049        , m_topMarginQuirk(false)
    5150        , m_bottomMarginQuirk(false)
     
    127126    bool m_childrenInline : 1;
    128127    bool m_firstLine : 1;
    129     unsigned m_clearStatus  : 2; // EClear
    130128    bool m_topMarginQuirk : 1;
    131129    bool m_bottomMarginQuirk : 1;
  • trunk/WebCore/rendering/bidi.cpp

    r31117 r31127  
    867867        BidiIterator end = start.position();
    868868
    869         if (!fullLayout && end.atEnd() && lastRootBox() && lastRootBox()->firstChild()->object()->isBR() && lastRootBox()->object()->firstChild()->style()->clear() != CNONE) {
    870             m_clearStatus = lastRootBox()->object()->firstChild()->style()->clear();
    871             newLine();
    872         }
     869        if (!fullLayout && end.atEnd() && lastRootBox() && lastRootBox()->firstChild()->object()->isBR() && lastRootBox()->object()->firstChild()->style()->clear() != CNONE)
     870            newLine(lastRootBox()->object()->firstChild()->style()->clear());
    873871
    874872        bool endLineMatched = false;
     
    885883                start.setPosition(BidiIterator(this, firstChild()->nextSibling(), 0));
    886884            }
    887             end = findNextLineBreak(start);
     885            EClear clear = CNONE;
     886            end = findNextLineBreak(start, &clear);
    888887            if (start.position().atEnd()) {
    889888                start.deleteRuns();
     
    935934
    936935                m_firstLine = false;
    937                 newLine();
     936                newLine(clear);
    938937            }
    939938
     
    14501449}
    14511450
    1452 BidiIterator RenderBlock::findNextLineBreak(BidiState& start)
     1451BidiIterator RenderBlock::findNextLineBreak(BidiState& start, EClear* clear)
    14531452{
    14541453    ASSERT(start.position().block == this);
     
    15271526                previousLineBrokeCleanly = true;
    15281527
    1529                 if (!isLineEmpty) {
    1530                     // only check the clear status for non-empty lines.
    1531                     EClear clear = o->style()->clear();
    1532                     if (clear != CNONE)
    1533                         m_clearStatus = (EClear) (m_clearStatus | clear);
    1534                 }
     1528                if (!isLineEmpty && clear)
     1529                    *clear = o->style()->clear();
    15351530            }
    15361531            goto end;
Note: See TracChangeset for help on using the changeset viewer.