| Index: Source/core/rendering/RenderBlockLineLayout.cpp
|
| diff --git a/Source/core/rendering/RenderBlockLineLayout.cpp b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| index df3537b3844781a1de59643e167e4cb8b601f5d5..0f6fd82b8bbe3953594bc5f0fe991f6f7b08fd7c 100644
|
| --- a/Source/core/rendering/RenderBlockLineLayout.cpp
|
| +++ b/Source/core/rendering/RenderBlockLineLayout.cpp
|
| @@ -398,7 +398,7 @@ static inline void ensureCharacterGetsLineBox(LineMidpointState& lineMidpointSta
|
|
|
| static inline BidiRun* createRun(int start, int end, RenderObject* obj, InlineBidiResolver& resolver)
|
| {
|
| - return new (obj->renderArena()) BidiRun(start, end, obj, resolver.context(), resolver.dir());
|
| + return new BidiRun(start, end, obj, resolver.context(), resolver.dir());
|
| }
|
|
|
| void RenderBlock::appendRunsForObject(BidiRunList<BidiRun>& runs, int start, int end, RenderObject* obj, InlineBidiResolver& resolver)
|
| @@ -1174,7 +1174,7 @@ inline BidiRun* RenderBlock::handleTrailingSpaces(BidiRunList<BidiRun>& bidiRuns
|
| while (BidiContext* parent = baseContext->parent())
|
| baseContext = parent;
|
|
|
| - BidiRun* newTrailingRun = new (renderArena()) BidiRun(firstSpace, trailingSpaceRun->m_stop, trailingSpaceRun->m_object, baseContext, OtherNeutral);
|
| + BidiRun* newTrailingRun = new BidiRun(firstSpace, trailingSpaceRun->m_stop, trailingSpaceRun->m_object, baseContext, OtherNeutral);
|
| trailingSpaceRun->m_stop = firstSpace;
|
| if (direction == LTR)
|
| bidiRuns.addRun(newTrailingRun);
|
| @@ -1446,15 +1446,15 @@ private:
|
| RenderFlowThread* m_flowThread;
|
| };
|
|
|
| -static void deleteLineRange(LineLayoutState& layoutState, RenderArena* arena, RootInlineBox* startLine, RootInlineBox* stopLine = 0)
|
| +static void deleteLineRange(LineLayoutState& layoutState, RootInlineBox* startLine, RootInlineBox* stopLine = 0)
|
| {
|
| RootInlineBox* boxToDelete = startLine;
|
| while (boxToDelete && boxToDelete != stopLine) {
|
| layoutState.updateRepaintRangeFromBox(boxToDelete);
|
| - // Note: deleteLineRange(renderArena(), firstRootBox()) is not identical to deleteLineBoxTree().
|
| + // Note: deleteLineRange(firstRootBox()) is not identical to deleteLineBoxTree().
|
| // deleteLineBoxTree uses nextLineBox() instead of nextRootBox() when traversing.
|
| RootInlineBox* next = boxToDelete->nextRootBox();
|
| - boxToDelete->deleteLine(arena);
|
| + boxToDelete->deleteLine();
|
| boxToDelete = next;
|
| }
|
| }
|
| @@ -1499,7 +1499,7 @@ void RenderBlock::layoutRunsAndFloats(LineLayoutState& layoutState, bool hasInli
|
| if (startLine) {
|
| if (!layoutState.usesRepaintBounds())
|
| layoutState.setRepaintRange(logicalHeight());
|
| - deleteLineRange(layoutState, renderArena(), startLine);
|
| + deleteLineRange(layoutState, startLine);
|
| }
|
|
|
| if (!layoutState.isFullLayout() && lastRootBox() && lastRootBox()->endsWithBreak()) {
|
| @@ -1693,7 +1693,7 @@ void RenderBlock::layoutRunsAndFloatsInRange(LineLayoutState& layoutState, Inlin
|
|
|
| if (availableLogicalWidthForLine(oldLogicalHeight + adjustment, layoutState.lineInfo().isFirstLine()) != oldLineWidth) {
|
| // We have to delete this line, remove all floats that got added, and let line layout re-run.
|
| - lineBox->deleteLine(renderArena());
|
| + lineBox->deleteLine();
|
| end = restartLayoutRunsAndFloatsInRange(oldLogicalHeight, oldLogicalHeight + adjustment, lastFloatFromPreviousLine, resolver, oldEnd);
|
| continue;
|
| }
|
| @@ -1832,7 +1832,7 @@ void RenderBlock::linkToEndLineIfNeeded(LineLayoutState& layoutState)
|
| setLogicalHeight(lastRootBox()->lineBottomWithLeading());
|
| } else {
|
| // Delete all the remaining lines.
|
| - deleteLineRange(layoutState, renderArena(), layoutState.endLine());
|
| + deleteLineRange(layoutState, layoutState.endLine());
|
| }
|
| }
|
|
|
| @@ -1843,7 +1843,7 @@ void RenderBlock::linkToEndLineIfNeeded(LineLayoutState& layoutState)
|
| if (layoutState.checkForFloatsFromLastLine()) {
|
| LayoutUnit bottomVisualOverflow = lastRootBox()->logicalBottomVisualOverflow();
|
| LayoutUnit bottomLayoutOverflow = lastRootBox()->logicalBottomLayoutOverflow();
|
| - TrailingFloatsRootInlineBox* trailingFloatsLineBox = new (renderArena()) TrailingFloatsRootInlineBox(this);
|
| + TrailingFloatsRootInlineBox* trailingFloatsLineBox = new TrailingFloatsRootInlineBox(this);
|
| m_lineBoxes.appendLineBox(trailingFloatsLineBox);
|
| trailingFloatsLineBox->setConstructed();
|
| GlyphOverflowAndFallbackFontsMap textBoxDataMap;
|
| @@ -1906,7 +1906,7 @@ void RenderBlock::layoutInlineChildren(bool relayoutChildren, LayoutUnit& repain
|
| LineLayoutState layoutState(isFullLayout, repaintLogicalTop, repaintLogicalBottom, flowThread);
|
|
|
| if (isFullLayout)
|
| - lineBoxes()->deleteLineBoxes(renderArena());
|
| + lineBoxes()->deleteLineBoxes();
|
|
|
| // Text truncation kicks in in two cases:
|
| // 1) If your overflow isn't visible and your text-overflow-mode isn't clip.
|
| @@ -2074,12 +2074,11 @@ RootInlineBox* RenderBlock::determineStartPosition(LineLayoutState& layoutState,
|
| if (layoutState.isFullLayout()) {
|
| // FIXME: This should just call deleteLineBoxTree, but that causes
|
| // crashes for fast/repaint tests.
|
| - RenderArena* arena = renderArena();
|
| curr = firstRootBox();
|
| while (curr) {
|
| // Note: This uses nextRootBox() insted of nextLineBox() like deleteLineBoxTree does.
|
| RootInlineBox* next = curr->nextRootBox();
|
| - curr->deleteLine(arena);
|
| + curr->deleteLine();
|
| curr = next;
|
| }
|
| ASSERT(!firstLineBox() && !lastLineBox());
|
| @@ -2257,7 +2256,7 @@ bool RenderBlock::matchedEndLine(LineLayoutState& layoutState, const InlineBidiR
|
| }
|
|
|
| // Now delete the lines that we failed to sync.
|
| - deleteLineRange(layoutState, renderArena(), originalEndLine, result);
|
| + deleteLineRange(layoutState, originalEndLine, result);
|
| return matched;
|
| }
|
| }
|
| @@ -3389,7 +3388,7 @@ void RenderBlock::layoutLineGridBox()
|
|
|
| setLineGridBox(0);
|
|
|
| - RootInlineBox* lineGridBox = new (renderArena()) RootInlineBox(this);
|
| + RootInlineBox* lineGridBox = new RootInlineBox(this);
|
| lineGridBox->setHasTextChildren(); // Needed to make the line ascent/descent actually be honored in quirks mode.
|
| lineGridBox->setConstructed();
|
| GlyphOverflowAndFallbackFontsMap textBoxDataMap;
|
|
|