diff options
-rw-r--r-- | components/script/dom/bindings/cell.rs | 9 | ||||
-rw-r--r-- | components/script/dom/shadowroot.rs | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/components/script/dom/bindings/cell.rs b/components/script/dom/bindings/cell.rs index e3f5ad71bee..5807138c948 100644 --- a/components/script/dom/bindings/cell.rs +++ b/components/script/dom/bindings/cell.rs @@ -45,11 +45,12 @@ impl<T> DomRefCell<T> { &mut *self.value.as_ptr() } - /// Version of the above that we use during restyle while the script thread - /// is blocked. - pub fn borrow_mut_for_layout(&self) -> RefMut<T> { + /// Mutably borrow a cell for layout. Ideally this would use + /// `RefCell::try_borrow_mut_unguarded` but that doesn't exist yet. + #[allow(unsafe_code)] + pub unsafe fn borrow_mut_for_layout(&self) -> &mut T { debug_assert!(thread_state::get().is_layout()); - self.value.borrow_mut() + &mut *self.value.as_ptr() } } diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs index f1c0567a399..c70c13d8cef 100644 --- a/components/script/dom/shadowroot.rs +++ b/components/script/dom/shadowroot.rs @@ -281,7 +281,7 @@ impl<'dom> LayoutShadowRootHelpers<'dom> for LayoutDom<'dom, ShadowRoot> { quirks_mode: QuirksMode, guard: &SharedRwLockReadGuard, ) { - let mut author_styles = (*self.unsafe_get()).author_styles.borrow_mut_for_layout(); + let author_styles = self.unsafe_get().author_styles.borrow_mut_for_layout(); if author_styles.stylesheets.dirty() { author_styles.flush::<E>(device, quirks_mode, guard); } |