2009-01-28  David Hyatt  <hyatt@apple.com>

        Refactor the first and last line box member variables from RenderFlow.  Encapsulate them into a new class called RenderLineBoxList that manages all modifications to
        the list.  This change will make it easier to give RenderInline and RenderBlock separate versions of the line box list without having to duplicate very much code.

        Reviewed by Oliver Hunt

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::deleteLine):
        (WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
        (WebCore::InlineFlowBox::extractLine):
        (WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
        (WebCore::InlineFlowBox::attachLine):
        (WebCore::InlineFlowBox::attachLineBoxToRenderObject):
        * rendering/InlineFlowBox.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::deleteLineBoxTree):
        * rendering/RenderFlow.cpp:
        (WebCore::RenderFlow::destroy):
        (WebCore::RenderFlow::dirtyLineBoxes):
        (WebCore::RenderFlow::createInlineBox):
        * rendering/RenderFlow.h:
        (WebCore::RenderFlow::RenderFlow):
        (WebCore::RenderFlow::lineBoxes):
        (WebCore::RenderFlow::firstLineBox):
        (WebCore::RenderFlow::lastLineBox):
        * rendering/RenderLineBoxList.cpp: Added.
        (WebCore::RenderLineBoxList::~RenderLineBoxList):
        (WebCore::RenderLineBoxList::appendLineBox):
        (WebCore::RenderLineBoxList::deleteLineBoxTree):
        (WebCore::RenderLineBoxList::extractLineBox):
        (WebCore::RenderLineBoxList::attachLineBox):
        (WebCore::RenderLineBoxList::removeLineBox):
        (WebCore::RenderLineBoxList::deleteLineBoxes):
        (WebCore::RenderLineBoxList::checkConsistency):
        * rendering/RenderLineBoxList.h: Added.
        (WebCore::RenderLineBoxList::RenderLineBoxList):
        (WebCore::RenderLineBoxList::firstLineBox):
        (WebCore::RenderLineBoxList::lastLineBox):
        (WebCore::RenderLineBoxList::checkConsistency):
        * rendering/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::createInlineBox):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::createInlineBox):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::removeLineBoxFromRenderObject):
        (WebCore::RootInlineBox::extractLineBoxFromRenderObject):
        (WebCore::RootInlineBox::attachLineBoxToRenderObject):
        * rendering/RootInlineBox.h:
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::layoutInlineChildren):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@40323 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/rendering/bidi.cpp b/WebCore/rendering/bidi.cpp
index 744e8d0..307d51e 100644
--- a/WebCore/rendering/bidi.cpp
+++ b/WebCore/rendering/bidi.cpp
@@ -778,7 +778,7 @@
     // FIXME: Do something better when floats are present.
     bool fullLayout = !firstLineBox() || !firstChild() || selfNeedsLayout() || relayoutChildren;
     if (fullLayout)
-        deleteLineBoxes();
+        lineBoxes()->deleteLineBoxes(renderArena());
 
     // Text truncation only kicks in if your overflow isn't visible and your text-overflow-mode isn't
     // clip.