| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 03babadc8f561601da4373b226042ac4646c4cb6..521ce946a8609c895e8735e721fa0441f43c0a64 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -356,7 +356,7 @@ void RenderObject::removeChild(RenderObject* oldChild)
|
|
|
| RenderObject* RenderObject::nextInPreOrder() const
|
| {
|
| - if (RenderObject* o = firstChild())
|
| + if (RenderObject* o = slowFirstChild())
|
| return o;
|
|
|
| return nextInPreOrderAfterChildren();
|
| @@ -378,7 +378,7 @@ RenderObject* RenderObject::nextInPreOrderAfterChildren() const
|
|
|
| RenderObject* RenderObject::nextInPreOrder(const RenderObject* stayWithin) const
|
| {
|
| - if (RenderObject* o = firstChild())
|
| + if (RenderObject* o = slowFirstChild())
|
| return o;
|
|
|
| return nextInPreOrderAfterChildren(stayWithin);
|
| @@ -402,8 +402,8 @@ RenderObject* RenderObject::nextInPreOrderAfterChildren(const RenderObject* stay
|
| RenderObject* RenderObject::previousInPreOrder() const
|
| {
|
| if (RenderObject* o = previousSibling()) {
|
| - while (o->lastChild())
|
| - o = o->lastChild();
|
| + while (RenderObject* lastChild = o->slowLastChild())
|
| + o = lastChild;
|
| return o;
|
| }
|
|
|
| @@ -420,7 +420,7 @@ RenderObject* RenderObject::previousInPreOrder(const RenderObject* stayWithin) c
|
|
|
| RenderObject* RenderObject::childAt(unsigned index) const
|
| {
|
| - RenderObject* child = firstChild();
|
| + RenderObject* child = slowFirstChild();
|
| for (unsigned i = 0; child && i < index; i++)
|
| child = child->nextSibling();
|
| return child;
|
| @@ -428,10 +428,10 @@ RenderObject* RenderObject::childAt(unsigned index) const
|
|
|
| RenderObject* RenderObject::lastLeafChild() const
|
| {
|
| - RenderObject* r = lastChild();
|
| + RenderObject* r = slowLastChild();
|
| while (r) {
|
| RenderObject* n = 0;
|
| - n = r->lastChild();
|
| + n = r->slowLastChild();
|
| if (!n)
|
| break;
|
| r = n;
|
| @@ -454,7 +454,7 @@ static void addLayers(RenderObject* obj, RenderLayer* parentLayer, RenderObject*
|
| return;
|
| }
|
|
|
| - for (RenderObject* curr = obj->firstChild(); curr; curr = curr->nextSibling())
|
| + for (RenderObject* curr = obj->slowFirstChild(); curr; curr = curr->nextSibling())
|
| addLayers(curr, parentLayer, newObject, beforeChild);
|
| }
|
|
|
| @@ -478,7 +478,7 @@ void RenderObject::removeLayers(RenderLayer* parentLayer)
|
| return;
|
| }
|
|
|
| - for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling())
|
| + for (RenderObject* curr = slowFirstChild(); curr; curr = curr->nextSibling())
|
| curr->removeLayers(parentLayer);
|
| }
|
|
|
| @@ -496,7 +496,7 @@ void RenderObject::moveLayers(RenderLayer* oldParent, RenderLayer* newParent)
|
| return;
|
| }
|
|
|
| - for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling())
|
| + for (RenderObject* curr = slowFirstChild(); curr; curr = curr->nextSibling())
|
| curr->moveLayers(oldParent, newParent);
|
| }
|
|
|
| @@ -515,7 +515,7 @@ RenderLayer* RenderObject::findNextLayer(RenderLayer* parentLayer, RenderObject*
|
| // Step 2: If we don't have a layer, or our layer is the desired parent, then descend
|
| // into our siblings trying to find the next layer whose parent is the desired parent.
|
| if (!ourLayer || ourLayer == parentLayer) {
|
| - for (RenderObject* curr = startPoint ? startPoint->nextSibling() : firstChild();
|
| + for (RenderObject* curr = startPoint ? startPoint->nextSibling() : slowFirstChild();
|
| curr; curr = curr->nextSibling()) {
|
| RenderLayer* nextLayer = curr->findNextLayer(parentLayer, 0, false);
|
| if (nextLayer)
|
| @@ -1331,7 +1331,7 @@ void RenderObject::addAbsoluteRectForLayer(LayoutRect& result)
|
| {
|
| if (hasLayer())
|
| result.unite(absoluteBoundingBoxRectIgnoringTransforms());
|
| - for (RenderObject* current = firstChild(); current; current = current->nextSibling())
|
| + for (RenderObject* current = slowFirstChild(); current; current = current->nextSibling())
|
| current->addAbsoluteRectForLayer(result);
|
| }
|
|
|
| @@ -1339,7 +1339,7 @@ LayoutRect RenderObject::paintingRootRect(LayoutRect& topLevelRect)
|
| {
|
| LayoutRect result = absoluteBoundingBoxRectIgnoringTransforms();
|
| topLevelRect = result;
|
| - for (RenderObject* current = firstChild(); current; current = current->nextSibling())
|
| + for (RenderObject* current = slowFirstChild(); current; current = current->nextSibling())
|
| current->addAbsoluteRectForLayer(result);
|
| return result;
|
| }
|
| @@ -1546,7 +1546,7 @@ void RenderObject::repaintTreeAfterLayout(const RenderLayerModelObject& repaintC
|
|
|
| clearRepaintState();
|
|
|
| - for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
|
| + for (RenderObject* child = slowFirstChild(); child; child = child->nextSibling()) {
|
| if (!child->isOutOfFlowPositioned())
|
| child->repaintTreeAfterLayout(repaintContainer);
|
| }
|
| @@ -1828,7 +1828,7 @@ void RenderObject::showRenderTreeAndMark(const RenderObject* markedObject1, cons
|
| if (!this)
|
| return;
|
|
|
| - for (const RenderObject* child = firstChild(); child; child = child->nextSibling())
|
| + for (const RenderObject* child = slowFirstChild(); child; child = child->nextSibling())
|
| child->showRenderTreeAndMark(markedObject1, markedLabel1, markedObject2, markedLabel2, depth + 1);
|
| }
|
|
|
| @@ -1986,7 +1986,7 @@ inline bool RenderObject::hasImmediateNonWhitespaceTextChildOrPropertiesDependen
|
| {
|
| if (style()->hasBorder() || style()->hasOutline())
|
| return true;
|
| - for (const RenderObject* r = firstChild(); r; r = r->nextSibling()) {
|
| + for (const RenderObject* r = slowFirstChild(); r; r = r->nextSibling()) {
|
| if (r->isText() && !toRenderText(r)->isAllCollapsibleWhitespace())
|
| return true;
|
| if (r->style()->hasOutline() || r->style()->hasBorder())
|
| @@ -2241,7 +2241,7 @@ void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
|
| void RenderObject::propagateStyleToAnonymousChildren(bool blockChildrenOnly)
|
| {
|
| // FIXME: We could save this call when the change only affected non-inherited properties.
|
| - for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
|
| + for (RenderObject* child = slowFirstChild(); child; child = child->nextSibling()) {
|
| if (!child->isAnonymous() || child->style()->styleType() != NOPSEUDO)
|
| continue;
|
|
|
| @@ -2550,7 +2550,7 @@ void RenderObject::addLayerHitTestRects(LayerHitTestRects& layerRects, const Ren
|
| // partially redundant rectangles. If we find examples where this is expensive, then we could
|
| // rewrite Region to be more efficient. See https://bugs.webkit.org/show_bug.cgi?id=100814.
|
| if (!isRenderView()) {
|
| - for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
|
| + for (RenderObject* curr = slowFirstChild(); curr; curr = curr->nextSibling()) {
|
| curr->addLayerHitTestRects(layerRects, currentLayer, layerOffset, newContainerRect);
|
| }
|
| }
|
| @@ -2718,7 +2718,7 @@ void RenderObject::insertedIntoTree()
|
| // Keep our layer hierarchy updated. Optimize for the common case where we don't have any children
|
| // and don't have a layer attached to ourselves.
|
| RenderLayer* layer = 0;
|
| - if (firstChild() || hasLayer()) {
|
| + if (slowFirstChild() || hasLayer()) {
|
| layer = parent()->enclosingLayer();
|
| addLayers(layer);
|
| }
|
| @@ -2749,7 +2749,7 @@ void RenderObject::willBeRemovedFromTree()
|
| }
|
|
|
| // Keep our layer hierarchy updated.
|
| - if (firstChild() || hasLayer()) {
|
| + if (slowFirstChild() || hasLayer()) {
|
| if (!layer)
|
| layer = parent()->enclosingLayer();
|
| removeLayers(layer);
|
| @@ -2805,7 +2805,7 @@ void RenderObject::destroyAndCleanupAnonymousWrappers()
|
| if (destroyRootParent->isRenderFlowThread() || destroyRootParent->isAnonymousColumnSpanBlock())
|
| break;
|
|
|
| - if (destroyRootParent->firstChild() != this || destroyRootParent->lastChild() != this)
|
| + if (destroyRootParent->slowFirstChild() != this || destroyRootParent->slowLastChild() != this)
|
| break;
|
| }
|
|
|
| @@ -2869,7 +2869,7 @@ void RenderObject::updateDragState(bool dragOn)
|
| else if (style()->affectedByDrag())
|
| node()->setNeedsStyleRecalc(LocalStyleChange);
|
| }
|
| - for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling())
|
| + for (RenderObject* curr = slowFirstChild(); curr; curr = curr->nextSibling())
|
| curr->updateDragState(dragOn);
|
| }
|
|
|
| @@ -3178,7 +3178,7 @@ void RenderObject::collectAnnotatedRegions(Vector<AnnotatedRegionValue>& regions
|
| return;
|
|
|
| addAnnotatedRegions(regions);
|
| - for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling())
|
| + for (RenderObject* curr = slowFirstChild(); curr; curr = curr->nextSibling())
|
| curr->collectAnnotatedRegions(regions);
|
| }
|
|
|
|
|