Ignore:
Timestamp:
Oct 3, 2013, 9:04:35 PM (12 years ago)
Author:
Antti Koivisto
Message:

Move setting of some layout bits to RenderElement
https://bugs.webkit.org/show_bug.cgi?id=122256

Reviewed by Andreas Kling.

These bits never apply to RenderText nodes:

normalChildNeedsLayout
posChildNeedsLayout
needsSimplifiedNormalFlowLayout
normalChildNeedsLayout
positionedMovementLayout

The code for setting them can be moved to RenderElement.

Also separated the code paths for setting and clearing the bits and uninlined
everything that is not massively popular.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp

    r156846 r156876  
    12741274    // determineStartPosition first will break fast/repaint/line-flow-with-floats-9.html.
    12751275    if (layoutState.isFullLayout() && hasInlineChild && !selfNeedsLayout()) {
    1276         setNeedsLayout(true, MarkOnlyThis); // Mark as needing a full layout to force us to repaint.
     1276        setNeedsLayout(MarkOnlyThis); // Mark as needing a full layout to force us to repaint.
    12771277        if (!view().doingFullRepaint() && hasLayer()) {
    12781278            // Because we waited until we were already inside layout to discover
     
    18751875
    18761876                if (relayoutChildren || box->hasRelativeDimensions())
    1877                     o->setChildNeedsLayout(true, MarkOnlyThis);
     1877                    box->setChildNeedsLayout(MarkOnlyThis);
    18781878
    18791879                // If relayoutChildren is set and the child has percentage padding or an embedded content box, we also need to invalidate the childs pref widths.
     
    18981898                if (layoutState.isFullLayout() || o->selfNeedsLayout())
    18991899                    dirtyLineBoxesForRenderer(o, layoutState.isFullLayout());
    1900                 o->setNeedsLayout(false);
     1900                o->clearNeedsLayout();
    19011901            }
    19021902        }
     
    34623462            setLogicalTopForChild(o, logicalTopForChild(o) + marginBeforeForChild(o) + paginationStrut);
    34633463            if (o->isRenderBlock())
    3464                 toRenderBlock(o)->setChildNeedsLayout(true, MarkOnlyThis);
     3464                toRenderBlock(o)->setChildNeedsLayout(MarkOnlyThis);
    34653465            o->layoutIfNeeded();
    34663466            // Save the old logical top before calling removePlacedObject which will set
Note: See TracChangeset for help on using the changeset viewer.