Make StrongRuleNode::ensure_child take a StrongRuleNode for the root

This commit is contained in:
Anthony Ramine 2020-04-16 16:20:47 +02:00
parent 37c70609f9
commit fb28ce6bbe
2 changed files with 11 additions and 10 deletions

View file

@ -367,7 +367,7 @@ impl StrongRuleNode {
StrongRuleNode { p }
}
pub(super) fn downgrade(&self) -> WeakRuleNode {
fn downgrade(&self) -> WeakRuleNode {
unsafe { WeakRuleNode::from_ptr(self.p) }
}
@ -378,7 +378,7 @@ impl StrongRuleNode {
pub(super) fn ensure_child(
&self,
root: WeakRuleNode,
root: &StrongRuleNode,
source: StyleSource,
level: CascadeLevel,
) -> StrongRuleNode {
@ -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();