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; |