diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/element.rs | 16 | ||||
-rw-r--r-- | components/script/dom/macros.rs | 23 | ||||
-rw-r--r-- | components/script/dom/node.rs | 12 |
3 files changed, 26 insertions, 25 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 3a8ac8f0cd8..2831fc3d8f0 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -327,7 +327,21 @@ impl Element { ) } - impl_rare_data!(ElementRareData); + fn rare_data(&self) -> Ref<Option<Box<ElementRareData>>> { + self.rare_data.borrow() + } + + fn rare_data_mut(&self) -> RefMut<Option<Box<ElementRareData>>> { + self.rare_data.borrow_mut() + } + + fn ensure_rare_data(&self) -> RefMut<Box<ElementRareData>> { + let mut rare_data = self.rare_data.borrow_mut(); + if rare_data.is_none() { + *rare_data = Some(Default::default()); + } + RefMut::map(rare_data, |rare_data| rare_data.as_mut().unwrap()) + } pub(crate) fn restyle(&self, damage: NodeDamage) { let doc = self.node.owner_doc(); diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index b3f222af0da..c2f5ba37c21 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -719,26 +719,3 @@ macro_rules! handle_potential_webgl_error { handle_potential_webgl_error!($context, $call, ()) }; } - -macro_rules! impl_rare_data ( - ($type:ty) => ( - fn rare_data(&self) -> Ref<Option<Box<$type>>> { - self.rare_data.borrow() - } - - #[allow(dead_code)] - fn rare_data_mut(&self) -> RefMut<Option<Box<$type>>> { - self.rare_data.borrow_mut() - } - - fn ensure_rare_data(&self) -> RefMut<Box<$type>> { - let mut rare_data = self.rare_data.borrow_mut(); - if rare_data.is_none() { - *rare_data = Some(Default::default()); - } - RefMut::map(rare_data, |rare_data| { - rare_data.as_mut().unwrap() - }) - } - ); -); diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index d312fe88fc5..1117eff6d3c 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -564,7 +564,17 @@ impl Iterator for QuerySelectorIterator { } impl Node { - impl_rare_data!(NodeRareData); + fn rare_data(&self) -> Ref<Option<Box<NodeRareData>>> { + self.rare_data.borrow() + } + + fn ensure_rare_data(&self) -> RefMut<Box<NodeRareData>> { + let mut rare_data = self.rare_data.borrow_mut(); + if rare_data.is_none() { + *rare_data = Some(Default::default()); + } + RefMut::map(rare_data, |rare_data| rare_data.as_mut().unwrap()) + } /// Returns true if this node is before `other` in the same connected DOM /// tree. |