We can shrink the matched declaration cache by getting rid of the 'isCacheable' bit.
Created attachment 122617 [details] Patch
Comment on attachment 122617 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=122617&action=review > Source/WebCore/css/CSSStyleSelector.cpp:821 > +void CSSStyleSelector::matchAllRules(MatchResult& result, bool& resultIsCacheable) I think I would prefer keeping everything in the MatchResult and instead factoring the ranges out to a separate struct that can be used in the matched declaration cache (instead of the full MatchResult).
If we want to add more context later we will be able to do it cleanly without adding even more function arguments in the future.
Created attachment 123158 [details] Patch v2 (Special Anttified Edition)
Comment on attachment 123158 [details] Patch v2 (Special Anttified Edition) r=me
Comment on attachment 123158 [details] Patch v2 (Special Anttified Edition) Clearing flags on attachment: 123158 Committed r105435: <http://trac.webkit.org/changeset/105435>
All reviewed patches have been landed. Closing bug.
Reopen, because it broke the debug build on Qt. Could you fix it? ../../../../Source/WebCore/css/CSSStyleSelector.cpp: In member function ‘const WebCore::CSSStyleSelector::MatchedStyleDeclarationCacheItem* WebCore::CSSStyleSelector::findFromMatchedDeclarationCache(unsigned int, const WebCore::CSSStyleSelector::MatchResult&)’: ../../../../Source/WebCore/css/CSSStyleSelector.cpp:2368: error: ‘struct WebCore::CSSStyleSelector::MatchedStyleDeclarationCacheItem’ has no member named ‘matchResult’
Debug build fixed by <http://trac.webkit.org/changeset/105440>.