aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/wrapper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_2020/wrapper.rs')
-rw-r--r--components/layout_2020/wrapper.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/components/layout_2020/wrapper.rs b/components/layout_2020/wrapper.rs
index 504ab9af2cc..e7c5ab5a7b1 100644
--- a/components/layout_2020/wrapper.rs
+++ b/components/layout_2020/wrapper.rs
@@ -7,18 +7,16 @@
use crate::data::StyleAndLayoutData;
use script_layout_interface::wrapper_traits::GetLayoutData;
-pub trait GetRawData {
- fn get_raw_data(&self) -> Option<&StyleAndLayoutData>;
+pub trait GetRawData<'dom> {
+ fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData>;
}
-impl<'dom, T> GetRawData for T
+impl<'dom, T> GetRawData<'dom> for T
where
T: GetLayoutData<'dom>,
{
- fn get_raw_data(&self) -> Option<&StyleAndLayoutData> {
- self.get_style_and_layout_data().map(|opaque| {
- let container = opaque.ptr.as_ptr() as *mut StyleAndLayoutData;
- unsafe { &*container }
- })
+ fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData> {
+ self.get_style_and_layout_data()
+ .map(|opaque| opaque.downcast_ref().unwrap())
}
}