Reviewed by Hyatt.
authorantti <antti@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2007 01:01:09 +0000 (01:01 +0000)
committerantti <antti@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 3 Apr 2007 01:01:09 +0000 (01:01 +0000)
commita3e9b2eb1d205f471115e50699b88eaeb5d065b3
tree6f90560c2a956a7f870e365a2c5a2f01625da3d9
parent51a7abd3ddca6ca2a526849590d89666ca5ed6bb
    Reviewed by Hyatt.

        Render tree memory savings, part 3

        These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
        RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.

        - Pack bitfields together in RenderFlow
        - Move top/bottom min/max margin values to a struct that is only allocated in case these
          variables have non default values. Usually this is <5% of all blocks.
        - Move rarely used column variables to hash

        * rendering/RenderBlock.cpp:
        (WebCore::ColumnInfo::ColumnInfo):
        (WebCore::RenderBlock::RenderBlock):
        (WebCore::RenderBlock::~RenderBlock):
        (WebCore::RenderBlock::layoutBlock):
        (WebCore::RenderBlock::collapseMargins):
        (WebCore::RenderBlock::clearFloatsIfNeeded):
        (WebCore::RenderBlock::setCollapsedBottomMargin):
        (WebCore::RenderBlock::layoutBlockChildren):
        (WebCore::RenderBlock::paintColumns):
        (WebCore::RenderBlock::paintObject):
        (WebCore::RenderBlock::fillSelectionGaps):
        (WebCore::RenderBlock::lowestPosition):
        (WebCore::RenderBlock::rightmostPosition):
        (WebCore::RenderBlock::leftmostPosition):
        (WebCore::RenderBlock::nodeAtPoint):
        (WebCore::RenderBlock::hitTestColumns):
        (WebCore::RenderBlock::positionForCoordinates):
        (WebCore::RenderBlock::availableWidth):
        (WebCore::RenderBlock::calcColumnWidth):
        (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
        (WebCore::RenderBlock::desiredColumnWidth):
        (WebCore::RenderBlock::desiredColumnCount):
        (WebCore::RenderBlock::columnRects):
        (WebCore::RenderBlock::layoutColumns):
        (WebCore::RenderBlock::adjustPointToColumnContents):
        (WebCore::RenderBlock::adjustRectForColumns):
        (WebCore::RenderBlock::setMaxTopMargins):
        (WebCore::RenderBlock::setMaxBottomMargins):
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::maxTopMargin):
        (WebCore::RenderBlock::maxBottomMargin):
        (WebCore::RenderBlock::maxTopPosMargin):
        (WebCore::RenderBlock::maxTopNegMargin):
        (WebCore::RenderBlock::maxBottomPosMargin):
        (WebCore::RenderBlock::maxBottomNegMargin):
        (WebCore::RenderBlock::initMaxMarginValues):
        (WebCore::RenderBlock::MaxMargin::MaxMargin):
        (WebCore::RenderBlock::MaxMargin::topPosDefault):
        (WebCore::RenderBlock::MaxMargin::topNegDefault):
        (WebCore::RenderBlock::MaxMargin::bottomPosDefault):
        (WebCore::RenderBlock::MaxMargin::bottomNegDefault):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderFlow.h:
        (WebCore::RenderFlow::RenderFlow):
        (WebCore::RenderFlow::hasColumns):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        * rendering/RenderInline.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@20673 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/rendering/RenderBlock.cpp
WebCore/rendering/RenderBlock.h
WebCore/rendering/RenderFlexibleBox.cpp
WebCore/rendering/RenderFlow.h
WebCore/rendering/RenderInline.cpp
WebCore/rendering/RenderInline.h