diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-10-17 15:20:51 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-10-19 09:37:02 +0200 |
commit | 6849510526fce9b836509d24ddd9858560698cad (patch) | |
tree | 2590de902394220b7f8f0a47c586852a483a24fb /components/script | |
parent | 5889a75b10591172a866464cd6f349761b0741b7 (diff) | |
download | servo-6849510526fce9b836509d24ddd9858560698cad.tar.gz servo-6849510526fce9b836509d24ddd9858560698cad.zip |
Do not root NamedNodeMap::owner
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/namednodemap.rs | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs index 078ddcc0d84..6070c0bb0c2 100644 --- a/components/script/dom/namednodemap.rs +++ b/components/script/dom/namednodemap.rs @@ -37,57 +37,38 @@ impl NamedNodeMap { impl NamedNodeMapMethods for NamedNodeMap { // https://dom.spec.whatwg.org/#dom-namednodemap-length fn Length(&self) -> u32 { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); - let attrs = owner.attrs(); - attrs.len() as u32 + self.owner.attrs().len() as u32 } // https://dom.spec.whatwg.org/#dom-namednodemap-item fn Item(&self, index: u32) -> Option<Root<Attr>> { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); - let attrs = owner.attrs(); - attrs.get(index as usize).map(|t| t.root()) + self.owner.attrs().get(index as usize).map(JS::root) } // https://dom.spec.whatwg.org/#dom-namednodemap-getnameditem fn GetNamedItem(&self, name: DOMString) -> Option<Root<Attr>> { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); - owner.get_attribute_by_name(name) + self.owner.get_attribute_by_name(name) } // https://dom.spec.whatwg.org/#dom-namednodemap-getnameditemns fn GetNamedItemNS(&self, namespace: Option<DOMString>, local_name: DOMString) -> Option<Root<Attr>> { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); let ns = namespace_from_domstring(namespace); - owner.get_attribute(&ns, &Atom::from_slice(&local_name)) + self.owner.get_attribute(&ns, &Atom::from_slice(&local_name)) } // https://dom.spec.whatwg.org/#dom-namednodemap-removenameditem fn RemoveNamedItem(&self, name: DOMString) -> Fallible<Root<Attr>> { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); - let name = owner.parsed_name(name); - owner.remove_attribute_by_name(&name).ok_or(Error::NotFound) + let name = self.owner.parsed_name(name); + self.owner.remove_attribute_by_name(&name).ok_or(Error::NotFound) } // https://dom.spec.whatwg.org/#dom-namednodemap-removenameditemns fn RemoveNamedItemNS(&self, namespace: Option<DOMString>, local_name: DOMString) -> Fallible<Root<Attr>> { - let owner = self.owner.root(); - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let owner = owner.r(); let ns = namespace_from_domstring(namespace); - owner.remove_attribute(&ns, &Atom::from_slice(&local_name)).ok_or(Error::NotFound) + self.owner.remove_attribute(&ns, &Atom::from_slice(&local_name)) + .ok_or(Error::NotFound) } // https://dom.spec.whatwg.org/#dom-namednodemap-item |