CSS: Shrink RuleData by storing selector as index rather than pointer.
<http://webkit.org/b/93712>

Reviewed by Antti Koivisto.

Pack the selector's index in the rule in the RuleData bitfield, effectively
shrinking each RuleData by 8 bytes.

* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::selectorAt):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter):

    Add helpers to CSSSelectorList to iterate by index.

* css/StyleResolver.cpp:
(RuleData):
(WebCore::RuleData::selector):
(WebCore::RuleData::selectorIndex):
(SameSizeAsRuleData):
(RuleSet):
(WebCore::makeRuleSet):
(WebCore::StyleResolver::collectMatchingRulesForList):
* css/StyleResolver.h:
(WebCore::StyleResolver::RuleFeature::RuleFeature):
(RuleFeature):

    Store selector indices instead of CSSSelector* pointers.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
4 files changed