diff options
author | Anthony Ramine <nox@nox.paris> | 2020-03-31 18:30:42 +0200 |
---|---|---|
committer | Anthony Ramine <nox@nox.paris> | 2020-03-31 18:30:42 +0200 |
commit | 0bda1748230b4d54c274a014d770daf461fec50f (patch) | |
tree | 73109765d2928227616aadb19c9ef8f5648e06cf /components/script/dom/element.rs | |
parent | 3b504148d5d4fef9f651e73df90ad8c9e9fb09a5 (diff) | |
download | servo-0bda1748230b4d54c274a014d770daf461fec50f.tar.gz servo-0bda1748230b4d54c274a014d770daf461fec50f.zip |
Merge RawLayoutElementHelpers into LayoutElementHelpers
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 3acbd647107..add49150a27 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -595,21 +595,20 @@ pub trait LayoutElementHelpers<'dom> { /// The shadow root this element is a host of. #[allow(unsafe_code)] unsafe fn get_shadow_root_for_layout(self) -> Option<LayoutDom<'dom, ShadowRoot>>; -} - -#[allow(unsafe_code)] -pub trait RawLayoutElementHelpers { - unsafe fn get_attr_for_layout<'a>( - &'a self, + #[allow(unsafe_code)] + unsafe fn get_attr_for_layout( + self, namespace: &Namespace, name: &LocalName, - ) -> Option<&'a AttrValue>; - unsafe fn get_attr_val_for_layout<'a>( - &'a self, + ) -> Option<&'dom AttrValue>; + #[allow(unsafe_code)] + unsafe fn get_attr_val_for_layout( + self, namespace: &Namespace, name: &LocalName, - ) -> Option<&'a str>; - unsafe fn get_attr_vals_for_layout<'a>(&'a self, name: &LocalName) -> Vec<&'a AttrValue>; + ) -> Option<&'dom str>; + #[allow(unsafe_code)] + unsafe fn get_attr_vals_for_layout(self, name: &LocalName) -> Vec<&'dom AttrValue>; } impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> { @@ -765,7 +764,7 @@ impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> { let size = if let Some(this) = self.downcast::<HTMLInputElement>() { // FIXME(pcwalton): More use of atoms, please! - match (*self.unsafe_get()).get_attr_val_for_layout(&ns!(), &local_name!("type")) { + match self.get_attr_val_for_layout(&ns!(), &local_name!("type")) { // Not text entry widget Some("hidden") | Some("date") | @@ -1012,15 +1011,15 @@ impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> { let mut current_node = Some(self.upcast::<Node>()); while let Some(node) = current_node { current_node = node.composed_parent_node_ref(); - match node.downcast::<Element>().map(|el| el.unsafe_get()) { + match node.downcast::<Element>() { Some(elem) => { if let Some(attr) = - (*elem).get_attr_val_for_layout(&ns!(xml), &local_name!("lang")) + elem.get_attr_val_for_layout(&ns!(xml), &local_name!("lang")) { return attr.to_owned(); } if let Some(attr) = - (*elem).get_attr_val_for_layout(&ns!(), &local_name!("lang")) + elem.get_attr_val_for_layout(&ns!(), &local_name!("lang")) { return attr.to_owned(); } @@ -1066,31 +1065,31 @@ impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> { .as_ref() .map(|sr| sr.to_layout()) } -} -#[allow(unsafe_code)] -impl RawLayoutElementHelpers for Element { + #[allow(unsafe_code)] #[inline] - unsafe fn get_attr_for_layout<'a>( - &'a self, + unsafe fn get_attr_for_layout( + self, namespace: &Namespace, name: &LocalName, - ) -> Option<&'a AttrValue> { - get_attr_for_layout(self, namespace, name).map(|attr| attr.value()) + ) -> Option<&'dom AttrValue> { + get_attr_for_layout(self.unsafe_get(), namespace, name).map(|attr| attr.value()) } + #[allow(unsafe_code)] #[inline] - unsafe fn get_attr_val_for_layout<'a>( - &'a self, + unsafe fn get_attr_val_for_layout( + self, namespace: &Namespace, name: &LocalName, - ) -> Option<&'a str> { - get_attr_for_layout(self, namespace, name).map(|attr| attr.as_str()) + ) -> Option<&'dom str> { + get_attr_for_layout(self.unsafe_get(), namespace, name).map(|attr| attr.as_str()) } + #[allow(unsafe_code)] #[inline] - unsafe fn get_attr_vals_for_layout<'a>(&'a self, name: &LocalName) -> Vec<&'a AttrValue> { - let attrs = self.attrs.borrow_for_layout(); + unsafe fn get_attr_vals_for_layout(self, name: &LocalName) -> Vec<&'dom AttrValue> { + let attrs = self.unsafe_get().attrs.borrow_for_layout(); attrs .iter() .filter_map(|attr| { |