diff options
author | Anthony Ramine <nox@nox.paris> | 2020-04-01 11:25:39 +0200 |
---|---|---|
committer | Anthony Ramine <nox@nox.paris> | 2020-04-01 11:40:55 +0200 |
commit | 295f1204257a804a866e48efcc95c226fd7ea3ed (patch) | |
tree | ec8f9659977c95d8dc989b4db287b7843be1cea8 | |
parent | ebd289215852c0fe65ab9633d1bb83243ea6221b (diff) | |
download | servo-295f1204257a804a866e48efcc95c226fd7ea3ed.tar.gz servo-295f1204257a804a866e48efcc95c226fd7ea3ed.zip |
Make LayoutShadowRootHelpers::get_style_data_for_layout return a &CascadeData
That return type is Sync, which thus means that the method can be safe.
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 2 | ||||
-rw-r--r-- | components/layout_thread_2020/dom_wrapper.rs | 2 | ||||
-rw-r--r-- | components/script/dom/shadowroot.rs | 9 |
3 files changed, 8 insertions, 5 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index e25c67b7f1c..9237e9d47e7 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -177,7 +177,7 @@ impl<'lr> TShadowRoot for ServoShadowRoot<'lr> { where Self: 'a, { - Some(unsafe { &self.shadow_root.get_style_data_for_layout().data }) + Some(&self.shadow_root.get_style_data_for_layout()) } } diff --git a/components/layout_thread_2020/dom_wrapper.rs b/components/layout_thread_2020/dom_wrapper.rs index 3a1128cc46e..5a722cd82b8 100644 --- a/components/layout_thread_2020/dom_wrapper.rs +++ b/components/layout_thread_2020/dom_wrapper.rs @@ -184,7 +184,7 @@ impl<'lr> TShadowRoot for ServoShadowRoot<'lr> { where Self: 'a, { - Some(unsafe { &self.shadow_root.get_style_data_for_layout().data }) + Some(&self.shadow_root.get_style_data_for_layout()) } } diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs index df9337eabcc..7e375c4fbba 100644 --- a/components/script/dom/shadowroot.rs +++ b/components/script/dom/shadowroot.rs @@ -27,6 +27,7 @@ use style::dom::TElement; use style::media_queries::Device; use style::shared_lock::SharedRwLockReadGuard; use style::stylesheets::Stylesheet; +use style::stylist::CascadeData; /// Whether a shadow root hosts an User Agent widget. #[derive(JSTraceable, MallocSizeOf, PartialEq)] @@ -241,7 +242,7 @@ impl ShadowRootMethods for ShadowRoot { #[allow(unsafe_code)] pub trait LayoutShadowRootHelpers<'dom> { fn get_host_for_layout(self) -> LayoutDom<'dom, Element>; - unsafe fn get_style_data_for_layout(self) -> &'dom AuthorStyles<StyleSheetInDocument>; + fn get_style_data_for_layout(self) -> &'dom CascadeData; unsafe fn flush_stylesheets<E: TElement>( self, device: &Device, @@ -264,8 +265,10 @@ impl<'dom> LayoutShadowRootHelpers<'dom> for LayoutDom<'dom, ShadowRoot> { #[inline] #[allow(unsafe_code)] - unsafe fn get_style_data_for_layout(self) -> &'dom AuthorStyles<StyleSheetInDocument> { - (*self.unsafe_get()).author_styles.borrow_for_layout() + fn get_style_data_for_layout(self) -> &'dom CascadeData { + fn is_sync<T: Sync>() {} + let _ = is_sync::<CascadeData>; + unsafe { &self.unsafe_get().author_styles.borrow_for_layout().data } } #[inline] |