aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/attr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/attr.rs')
-rw-r--r--components/script/dom/attr.rs27
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 }
}
}