servo: Merge #17384 - style: Clean up some stylist code and make it slightly more efficient (from emilio:stylist-attr-dep); r=nox

Source-Repo: https://github.com/servo/servo
Source-Revision: c5433277b44467ccbfd00024000ded5769157e3c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8990e102de45adea1db5ad9421374d6692167c81
This commit is contained in:
Emilio Cobos Álvarez 2017-06-17 06:20:45 -07:00
Родитель ea751a6a52
Коммит 264b5bdf0b
1 изменённых файлов: 6 добавлений и 11 удалений

Просмотреть файл

@ -549,7 +549,7 @@ impl Stylist {
if *local_name == local_name!("style") {
self.style_attribute_dependency
} else {
self.attribute_dependencies.might_contain(local_name)
self.attribute_dependencies.might_contain_hash(local_name.get_hash())
}
}
@ -1169,7 +1169,7 @@ impl Stylist {
/// of our rule maps.
#[inline]
pub fn may_have_rules_for_id(&self, id: &Atom) -> bool {
self.mapped_ids.might_contain(id)
self.mapped_ids.might_contain_hash(id.get_hash())
}
/// Return whether the device is dirty, that is, whether the screen size or
@ -1304,16 +1304,11 @@ impl<'a> SelectorVisitor for AttributeAndStateDependencyVisitor<'a> {
fn visit_attribute_selector(&mut self, _ns: &NamespaceConstraint<&Namespace>,
name: &LocalName, lower_name: &LocalName)
-> bool {
#[cfg(feature = "servo")]
let style_lower_name = local_name!("style");
#[cfg(feature = "gecko")]
let style_lower_name = atom!("style");
if *lower_name == style_lower_name {
if *lower_name == local_name!("style") {
*self.style_attribute_dependency = true;
} else {
self.attribute_dependencies.insert(&name);
self.attribute_dependencies.insert(&lower_name);
self.attribute_dependencies.insert_hash(name.get_hash());
self.attribute_dependencies.insert_hash(lower_name.get_hash());
}
true
}
@ -1337,7 +1332,7 @@ impl<'a> SelectorVisitor for MappedIdVisitor<'a> {
/// We just want to insert all the ids we find into mapped_ids.
fn visit_simple_selector(&mut self, s: &Component<SelectorImpl>) -> bool {
if let Component::ID(ref id) = *s {
self.mapped_ids.insert(id);
self.mapped_ids.insert_hash(id.get_hash());
}
true
}