mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
style: Remove unneeded indirection in traversal code.
This commit is contained in:
parent
3d40b516c8
commit
d5f8b91d91
2 changed files with 12 additions and 12 deletions
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue