Ignore:
Timestamp:
Oct 2, 2013, 7:26:52 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

    r156618 r156816  
    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
     
    18671867
    18681868                if (relayoutChildren || box->hasRelativeDimensions())
    1869                     o->setChildNeedsLayout(true, MarkOnlyThis);
     1869                    box->setChildNeedsLayout(MarkOnlyThis);
    18701870
    18711871                // If relayoutChildren is set and the child has percentage padding or an embedded content box, we also need to invalidate the childs pref widths.
     
    18901890                if (layoutState.isFullLayout() || o->selfNeedsLayout())
    18911891                    dirtyLineBoxesForRenderer(o, layoutState.isFullLayout());
    1892                 o->setNeedsLayout(false);
     1892                o->clearNeedsLayout();
    18931893            }
    18941894        }
     
    34513451            setLogicalTopForChild(o, logicalTopForChild(o) + marginBeforeForChild(o) + paginationStrut);
    34523452            if (o->isRenderBlock())
    3453                 toRenderBlock(o)->setChildNeedsLayout(true, MarkOnlyThis);
     3453                toRenderBlock(o)->setChildNeedsLayout(MarkOnlyThis);
    34543454            o->layoutIfNeeded();
    34553455            // Save the old logical top before calling removePlacedObject which will set
Note: See TracChangeset for help on using the changeset viewer.