Make RuleData support up to 8191 selectors
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Mar 2013 04:54:39 +0000 (04:54 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Mar 2013 04:54:39 +0000 (04:54 +0000)
commit5cedab836c6c6d00af0dd07b66967ab500a72085
tree9a61259047645389a3de720cab54c6394a05e209
parent14850a515483a0ec2a6267bdb90605fbc09a5e95
Make RuleData support up to 8191 selectors
https://bugs.webkit.org/show_bug.cgi?id=111663

Patch by Philippe Liard <pliard@chromium.org> on 2013-03-06
Reviewed by Andreas Kling.

r125294 made RuleData consume less memory by replacing a pointer with
an index encoded on 12 bits.
This unfortunately breaks Chrome for Android (and others) when a lot of
CSS is used or more precisely when selectorIndex cannot be stored on 12
bits.

Threfore this change decreases the number of bits used to store
m_position by 1 (from 19 to 18) and adds this extra bit to
m_selectorIndex so that values up to 8191 can be stored safely without
overflowing.

* css/RuleSet.h:
(RuleData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@145034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/css/RuleSet.h