aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/attr.rs
diff options
context:
space:
mode:
authorTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-26 04:33:54 +0900
committerTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-30 06:22:09 +0900
commit794ce9cd4d6058a8aa30120742f292fbc7d95e2a (patch)
treeb05fa05c7b72ae2e73560dea11d58cffaa38e88c /src/components/script/dom/attr.rs
parentf2db7faf19c34165c08f1d5839a7461bc04c20a5 (diff)
downloadservo-794ce9cd4d6058a8aa30120742f292fbc7d95e2a.tar.gz
servo-794ce9cd4d6058a8aa30120742f292fbc7d95e2a.zip
Use atom to match id selector.
Diffstat (limited to 'src/components/script/dom/attr.rs')
-rw-r--r--src/components/script/dom/attr.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/components/script/dom/attr.rs b/src/components/script/dom/attr.rs
index f58631176f1..0e499ebf477 100644
--- a/src/components/script/dom/attr.rs
+++ b/src/components/script/dom/attr.rs
@@ -167,6 +167,7 @@ impl<'a> AttrMethods for JSRef<'a, Attr> {
pub trait AttrHelpersForLayout {
unsafe fn value_ref_forever(&self) -> &'static str;
+ unsafe fn value_atom_forever(&self) -> Option<Atom>;
}
impl AttrHelpersForLayout for Attr {
@@ -175,4 +176,13 @@ impl AttrHelpersForLayout for Attr {
let value = mem::transmute::<&RefCell<AttrValue>, &AttrValue>(self.value.deref());
value.as_slice()
}
+
+ unsafe fn value_atom_forever(&self) -> Option<Atom> {
+ // cast to point to T in RefCell<T> directly
+ let value = mem::transmute::<&RefCell<AttrValue>, &AttrValue>(self.value.deref());
+ match *value {
+ AtomAttrValue(ref val) => Some(val.clone()),
+ _ => None,
+ }
+ }
}