mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 14:22:01 +00:00
0b9b61abdd
The EffectSet count does not exactly represent the count what we really need for AnimationValueMap, but in most cases it matches. For example; 1) The element has two different keyframes animations @keyframes anim1 { to { opacity: 0; } } @keyframes anim2 { to { transform: rotate(360deg); } } In this case the number matches. 2) The element has two animations but both keyframes have the same CSS property @keyframes anim1 { to { opacity: 0; } } @keyframes anim2 { to { opacity: 0.1; } } In this case the number doesn't match, moreover it results more memory than we ever needed, but this case is presumably less common. 3) The element has an animation having keyframes for two different CSS properties. @keyframes anim { from { opacity: 0; transform: rotate(360deg); } } In this kind of cases, the number doesn't match. But even so, this patch reduces the opportunities that the AnimationValueMap tries to allocate a new memory (i.e. less opportunities on expanding the map). Note that when the hash map is expanded, we do allocate a new RawTable with the new size then replace the old one with the new one [1], so I believe this change will reduce the crash rate to some extent. [1] https://hg.mozilla.org/mozilla-central/file/15c95df467be/servo/components/hashglobe/src/hash_map.rs#l734 MozReview-Commit-ID: 6tcF9aqXh7a --HG-- extra : rebase_source : 366989d3a2756f5a5711503a57f42f3b746d93a5 |
||
---|---|---|
.. | ||
base | ||
build | ||
doc | ||
forms | ||
generic | ||
inspector | ||
ipc | ||
mathml | ||
media | ||
painting | ||
printing | ||
reftests | ||
style | ||
svg | ||
tables | ||
tools | ||
xul | ||
moz.build |