Map RootInlineBox to containing region via bit+hashmap.
<https://webkit.org/b/126917>
The vas majority of RootInlineBox objects don't have a containing
RenderRegion, so let's store that in a bit+hashmap configuration
instead of having a dedicated pointer member for it.
148 kB progression on Membuster3.
Reviewed by Antti Koivisto.
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
Added m_hasContainingRegion bit.
(WebCore::containingRegionMap):
Global map between RootInlineBox and RenderRegion.
(WebCore::RootInlineBox::~RootInlineBox):
Remove self from aforementioned global map if needed.
(WebCore::RootInlineBox::paint):
Tweak a condition to avoid double hash lookup.
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::clearContainingRegion):
(WebCore::RootInlineBox::setContainingRegion):
Store the containing region in a bit+hashmap.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5 files changed