style: Remove unneeded indirection in traversal code.

This commit is contained in:
Emilio Cobos Álvarez 2017-05-21 16:46:58 +02:00
parent 3d40b516c8
commit d5f8b91d91
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
2 changed files with 12 additions and 12 deletions

View file

@ -7,7 +7,6 @@
#![allow(unsafe_code)] #![allow(unsafe_code)]
#![deny(missing_docs)] #![deny(missing_docs)]
use atomic_refcell::AtomicRefMut;
use cascade_info::CascadeInfo; use cascade_info::CascadeInfo;
use context::{SelectorFlagsMap, SharedStyleContext, StyleContext}; use context::{SelectorFlagsMap, SharedStyleContext, StyleContext};
use data::{ComputedStyle, ElementData, RestyleData}; use data::{ComputedStyle, ElementData, RestyleData};
@ -969,7 +968,7 @@ pub trait MatchMethods : TElement {
fn replace_rules(&self, fn replace_rules(&self,
replacements: RestyleReplacements, replacements: RestyleReplacements,
context: &StyleContext<Self>, context: &StyleContext<Self>,
data: &mut AtomicRefMut<ElementData>) data: &mut ElementData)
-> RulesChanged { -> RulesChanged {
use properties::PropertyDeclarationBlock; use properties::PropertyDeclarationBlock;
use shared_lock::Locked; use shared_lock::Locked;

View file

@ -4,7 +4,7 @@
//! Traversing the DOM tree; the bloom filter. //! Traversing the DOM tree; the bloom filter.
use atomic_refcell::{AtomicRefCell, AtomicRefMut}; use atomic_refcell::AtomicRefCell;
use context::{SharedStyleContext, StyleContext, ThreadLocalStyleContext}; use context::{SharedStyleContext, StyleContext, ThreadLocalStyleContext};
use data::{ElementData, ElementStyles, StoredRestyleHint}; use data::{ElementData, ElementStyles, StoredRestyleHint};
use dom::{DirtyDescendants, NodeInfo, OpaqueNode, TElement, TNode}; use dom::{DirtyDescendants, NodeInfo, OpaqueNode, TElement, TNode};
@ -605,11 +605,11 @@ pub fn recalc_style_at<E, D>(traversal: &D,
traversal_data: &PerLevelTraversalData, traversal_data: &PerLevelTraversalData,
context: &mut StyleContext<E>, context: &mut StyleContext<E>,
element: E, element: E,
mut data: &mut AtomicRefMut<ElementData>) data: &mut ElementData)
where E: TElement, where E: TElement,
D: DomTraversal<E> D: DomTraversal<E>
{ {
context.thread_local.begin_element(element, &data); context.thread_local.begin_element(element, data);
context.thread_local.statistics.elements_traversed += 1; context.thread_local.statistics.elements_traversed += 1;
debug_assert!(!element.has_snapshot() || element.handled_snapshot(), debug_assert!(!element.has_snapshot() || element.handled_snapshot(),
"Should've handled snapshots here already"); "Should've handled snapshots here already");
@ -625,7 +625,7 @@ pub fn recalc_style_at<E, D>(traversal: &D,
// Compute style for this element if necessary. // Compute style for this element if necessary.
if compute_self { if compute_self {
match compute_style(traversal, traversal_data, context, element, &mut data) { match compute_style(traversal, traversal_data, context, element, data) {
ChildCascadeRequirement::MustCascade => { ChildCascadeRequirement::MustCascade => {
inherited_style_changed = true; inherited_style_changed = true;
} }
@ -728,7 +728,8 @@ fn compute_style<E, D>(_traversal: &D,
traversal_data: &PerLevelTraversalData, traversal_data: &PerLevelTraversalData,
context: &mut StyleContext<E>, context: &mut StyleContext<E>,
element: E, element: E,
mut data: &mut AtomicRefMut<ElementData>) -> ChildCascadeRequirement data: &mut ElementData)
-> ChildCascadeRequirement
where E: TElement, where E: TElement,
D: DomTraversal<E>, D: DomTraversal<E>,
{ {
@ -742,7 +743,7 @@ fn compute_style<E, D>(_traversal: &D,
// of the work. // of the work.
if let MatchAndCascade = kind { if let MatchAndCascade = kind {
let sharing_result = unsafe { let sharing_result = unsafe {
element.share_style_if_possible(context, &mut data) element.share_style_if_possible(context, data)
}; };
if let StyleWasShared(index, had_damage) = sharing_result { if let StyleWasShared(index, had_damage) = sharing_result {
context.thread_local.statistics.styles_shared += 1; context.thread_local.statistics.styles_shared += 1;
@ -764,22 +765,22 @@ fn compute_style<E, D>(_traversal: &D,
// Perform the matching and cascading. // Perform the matching and cascading.
element.match_and_cascade( element.match_and_cascade(
context, context,
&mut data, data,
StyleSharingBehavior::Allow StyleSharingBehavior::Allow
) )
} }
CascadeWithReplacements(flags) => { CascadeWithReplacements(flags) => {
let rules_changed = element.replace_rules(flags, context, &mut data); let rules_changed = element.replace_rules(flags, context, data);
element.cascade_primary_and_pseudos( element.cascade_primary_and_pseudos(
context, context,
&mut data, data,
rules_changed.important_rules_changed() rules_changed.important_rules_changed()
) )
} }
CascadeOnly => { CascadeOnly => {
element.cascade_primary_and_pseudos( element.cascade_primary_and_pseudos(
context, context,
&mut data, data,
/* important_rules_changed = */ false /* important_rules_changed = */ false
) )
} }