Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Make StrongRuleNode::ensure_child take a StrongRuleNode for the root
  • Loading branch information
nox committed Apr 17, 2020
1 parent 37c7060 commit fb28ce6
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
5 changes: 3 additions & 2 deletions components/style/rule_tree/core.rs
Expand Up @@ -367,7 +367,7 @@ impl StrongRuleNode {
StrongRuleNode { p }
}

pub(super) fn downgrade(&self) -> WeakRuleNode {
fn downgrade(&self) -> WeakRuleNode {
unsafe { WeakRuleNode::from_ptr(self.p) }
}

Expand All @@ -378,7 +378,7 @@ impl StrongRuleNode {

pub(super) fn ensure_child(
&self,
root: WeakRuleNode,
root: &StrongRuleNode,
source: StyleSource,
level: CascadeLevel,
) -> StrongRuleNode {
Expand All @@ -404,6 +404,7 @@ impl StrongRuleNode {
key,
|node| unsafe { (*node.ptr()).key() },
move || {
let root = root.downgrade();
let strong =
StrongRuleNode::new(Box::new(RuleNode::new(root, self.clone(), source, level)));
let weak = strong.downgrade();
Expand Down
16 changes: 8 additions & 8 deletions components/style/rule_tree/mod.rs
Expand Up @@ -95,7 +95,7 @@ impl RuleTree {
debug_assert!(transition.is_none());
transition = Some(source);
} else {
current = current.ensure_child(self.root().downgrade(), source, level);
current = current.ensure_child(self.root(), source, level);
}
}

Expand Down Expand Up @@ -131,7 +131,7 @@ impl RuleTree {

for (source, shadow_cascade_order) in important_author.drain(..) {
current = current.ensure_child(
self.root().downgrade(),
self.root(),
source,
AuthorImportant {
shadow_cascade_order: -shadow_cascade_order,
Expand All @@ -140,15 +140,15 @@ impl RuleTree {
}

for source in important_user.drain(..) {
current = current.ensure_child(self.root().downgrade(), source, UserImportant);
current = current.ensure_child(self.root(), source, UserImportant);
}

for source in important_ua.drain(..) {
current = current.ensure_child(self.root().downgrade(), source, UAImportant);
current = current.ensure_child(self.root(), source, UAImportant);
}

if let Some(source) = transition {
current = current.ensure_child(self.root().downgrade(), source, Transitions);
current = current.ensure_child(self.root(), source, Transitions);
}

current
Expand Down Expand Up @@ -182,7 +182,7 @@ impl RuleTree {
{
let mut current = from;
for (source, level) in iter {
current = current.ensure_child(self.root().downgrade(), source, level);
current = current.ensure_child(self.root(), source, level);
}
current
}
Expand Down Expand Up @@ -262,7 +262,7 @@ impl RuleTree {
if level.is_important() {
if pdb.read_with(level.guard(guards)).any_important() {
current = current.ensure_child(
self.root().downgrade(),
self.root(),
StyleSource::from_declarations(pdb.clone_arc()),
level,
);
Expand All @@ -271,7 +271,7 @@ impl RuleTree {
} else {
if pdb.read_with(level.guard(guards)).any_normal() {
current = current.ensure_child(
self.root().downgrade(),
self.root(),
StyleSource::from_declarations(pdb.clone_arc()),
level,
);
Expand Down

0 comments on commit fb28ce6

Please sign in to comment.