diff options
Diffstat (limited to 'components/script/dom/attr.rs')
-rw-r--r-- | components/script/dom/attr.rs | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index cea5df2abf5..e2e8b79f9af 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -234,27 +234,27 @@ impl Attr { #[allow(unsafe_code)] pub trait AttrHelpersForLayout<'dom> { - unsafe fn value(self) -> &'dom AttrValue; - unsafe fn value_ref_forever(self) -> &'dom str; - unsafe fn value_tokens(self) -> Option<&'dom [Atom]>; - unsafe fn local_name_atom(self) -> LocalName; + fn value(self) -> &'dom AttrValue; + fn as_str(self) -> &'dom str; + fn as_tokens(self) -> Option<&'dom [Atom]>; + fn local_name(self) -> &'dom LocalName; + fn namespace(self) -> &'dom Namespace; } #[allow(unsafe_code)] impl<'dom> AttrHelpersForLayout<'dom> for LayoutDom<'dom, Attr> { #[inline] - unsafe fn value(self) -> &'dom AttrValue { - (*self.unsafe_get()).value.borrow_for_layout() + fn value(self) -> &'dom AttrValue { + unsafe { self.unsafe_get().value.borrow_for_layout() } } #[inline] - unsafe fn value_ref_forever(self) -> &'dom str { + fn as_str(self) -> &'dom str { &**self.value() } #[inline] - unsafe fn value_tokens(self) -> Option<&'dom [Atom]> { - // This transmute is used to cheat the lifetime restriction. + fn as_tokens(self) -> Option<&'dom [Atom]> { match *self.value() { AttrValue::TokenList(_, ref tokens) => Some(tokens), _ => None, @@ -262,7 +262,12 @@ impl<'dom> AttrHelpersForLayout<'dom> for LayoutDom<'dom, Attr> { } #[inline] - unsafe fn local_name_atom(self) -> LocalName { - (*self.unsafe_get()).identifier.local_name.clone() + fn local_name(self) -> &'dom LocalName { + unsafe { &self.unsafe_get().identifier.local_name } + } + + #[inline] + fn namespace(self) -> &'dom Namespace { + unsafe { &self.unsafe_get().identifier.namespace } } } |