diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-04-23 11:36:06 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-04-26 12:00:26 +0200 |
commit | 9b2eb775302b84542ab8fea921ab441342fe79c3 (patch) | |
tree | 6d92c728a0e303e4cfcf012531ae9eefd301f8fa /components/script/dom/macros.rs | |
parent | d0b2e826ef4a79a0c4b0b33d4a66f0ab5c3c9d61 (diff) | |
download | servo-9b2eb775302b84542ab8fea921ab441342fe79c3.tar.gz servo-9b2eb775302b84542ab8fea921ab441342fe79c3.zip |
Do not lazy initialize RareData on its getters
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r-- | components/script/dom/macros.rs | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index 0fb51c7d8fd..de531f0c53f 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -635,29 +635,22 @@ macro_rules! handle_potential_webgl_error { macro_rules! impl_rare_data ( ($type:ty) => ( - fn init_rare_data(&self) { - let mut rare_data = self.rare_data.borrow_mut(); - if rare_data.is_none() { - *rare_data = Some(Default::default()); - } - } - fn rare_data(&self) -> Ref<Option<Box<$type>>> { - self.init_rare_data(); self.rare_data.borrow() } - fn rare_data_mut(&self) -> RefMut<Option<Box<$type>>> { - self.init_rare_data(); - 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() + }) } #[allow(unsafe_code)] fn rare_data_for_layout(&self) -> &Option<Box<$type>> { - let mut rare_data = self.rare_data.borrow_mut_for_layout(); - if rare_data.is_none() { - *rare_data = Some(Default::default()); - } unsafe { self.rare_data.borrow_for_layout() } } ); |