Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(893)

Unified Diff: Source/core/rendering/RenderBlockLineLayout.cpp

Issue 16896019: Replace RenderArena with PartitionAlloc. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698