diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-11-14 16:00:23 +0100 |
---|---|---|
committer | Tamir Duberstein <tamird@gmail.com> | 2015-04-27 12:20:23 -0700 |
commit | e8b02acb1da451bdd730fec0a98a3a1a4fc47acb (patch) | |
tree | f0cb6384efb5084411e6f57abebd77effdba83b6 /components | |
parent | 89a0c004d574c69f9ca03bde2ed341cc51b21f0f (diff) | |
download | servo-e8b02acb1da451bdd730fec0a98a3a1a4fc47acb.tar.gz servo-e8b02acb1da451bdd730fec0a98a3a1a4fc47acb.zip |
Pass Atom to Attr:new for the prefix argument.
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/attr.rs | 6 | ||||
-rw-r--r-- | components/script/dom/bindings/utils.rs | 5 | ||||
-rw-r--r-- | components/script/dom/document.rs | 2 | ||||
-rw-r--r-- | components/script/dom/element.rs | 13 | ||||
-rw-r--r-- | components/script/dom/node.rs | 2 |
5 files changed, 13 insertions, 15 deletions
diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index aef9d65e5ff..d9fba643985 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -109,21 +109,21 @@ pub struct Attr { impl Attr { fn new_inherited(local_name: Atom, value: AttrValue, name: Atom, namespace: Namespace, - prefix: Option<DOMString>, owner: Option<JSRef<Element>>) -> Attr { + prefix: Option<Atom>, owner: Option<JSRef<Element>>) -> Attr { Attr { reflector_: Reflector::new(), local_name: local_name, value: DOMRefCell::new(value), name: name, namespace: namespace, - prefix: prefix.map(|p| Atom::from_slice(&p)), + prefix: prefix, owner: MutNullableHeap::new(owner.map(JS::from_rooted)), } } pub fn new(window: JSRef<Window>, local_name: Atom, value: AttrValue, name: Atom, namespace: Namespace, - prefix: Option<DOMString>, owner: Option<JSRef<Element>>) -> Temporary<Attr> { + prefix: Option<Atom>, owner: Option<JSRef<Element>>) -> Temporary<Attr> { reflect_dom_object( box Attr::new_inherited(local_name, value, name, namespace, prefix, owner), GlobalRef::Window(window), diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index 346013f6221..9c7063d38a2 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -17,7 +17,6 @@ use util::str::DOMString; use libc; use libc::c_uint; -use std::borrow::ToOwned; use std::boxed; use std::cell::Cell; use std::ffi::CString; @@ -628,7 +627,7 @@ pub fn validate_qualified_name(qualified_name: &str) -> ErrorResult { /// Validate a namespace and qualified name and extract their parts. /// See https://dom.spec.whatwg.org/#validate-and-extract for details. pub fn validate_and_extract(namespace: Option<DOMString>, qualified_name: &str) - -> Fallible<(Namespace, Option<DOMString>, Atom)> { + -> Fallible<(Namespace, Option<Atom>, Atom)> { // Step 1. let namespace = namespace::from_domstring(namespace); @@ -667,7 +666,7 @@ pub fn validate_and_extract(namespace: Option<DOMString>, qualified_name: &str) }, (ns, p) => { // Step 10. - Ok((ns, p.map(|s| s.to_owned()), Atom::from_slice(local_name))) + Ok((ns, p.map(Atom::from_slice), Atom::from_slice(local_name))) } } } diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 8cd3655d7c5..9b88ed97a77 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1025,7 +1025,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { let (namespace, prefix, local_name) = try!(validate_and_extract(namespace, &qualified_name)); let name = QualName::new(namespace, local_name); - Ok(Element::create(name, prefix, self, ElementCreator::ScriptCreated)) + Ok(Element::create(name, prefix.map(|p| (*p).to_owned()), self, ElementCreator::ScriptCreated)) } // https://dom.spec.whatwg.org/#dom-document-createattribute diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index c17d4dce43f..b770c66caf4 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -670,12 +670,12 @@ pub trait AttributeHandlers { fn set_attribute_from_parser(self, name: QualName, value: DOMString, - prefix: Option<DOMString>); + prefix: Option<Atom>); fn set_attribute(self, name: &Atom, value: AttrValue); fn set_custom_attribute(self, name: DOMString, value: DOMString) -> ErrorResult; fn do_set_attribute<F>(self, local_name: Atom, value: AttrValue, name: Atom, namespace: Namespace, - prefix: Option<DOMString>, cb: F) + prefix: Option<Atom>, cb: F) where F: Fn(JSRef<Attr>) -> bool; fn parse_attribute(self, namespace: &Namespace, local_name: &Atom, value: DOMString) -> AttrValue; @@ -743,7 +743,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { fn set_attribute_from_parser(self, qname: QualName, value: DOMString, - prefix: Option<DOMString>) { + prefix: Option<Atom>) { // Don't set if the attribute already exists, so we can handle add_attrs_if_missing if self.attrs.borrow().iter().map(|attr| attr.root()) .any(|a| *a.r().local_name() == qname.local && *a.r().namespace() == qname.ns) { @@ -753,7 +753,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { let name = match prefix { None => qname.local.clone(), Some(ref prefix) => { - let name = format!("{}:{}", *prefix, &*qname.local); + let name = format!("{}:{}", &**prefix, &*qname.local); Atom::from_slice(&name) }, }; @@ -791,7 +791,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { value: AttrValue, name: Atom, namespace: Namespace, - prefix: Option<DOMString>, + prefix: Option<Atom>, cb: F) where F: Fn(JSRef<Attr>) -> bool { @@ -1099,8 +1099,7 @@ impl<'a> ElementMethods for JSRef<'a, Element> { let qualified_name = Atom::from_slice(&qualified_name); let value = self.parse_attribute(&namespace, &local_name, value); self.do_set_attribute(local_name.clone(), value, qualified_name, - namespace.clone(), prefix.map(|s| s.to_owned()), - |attr| { + namespace.clone(), prefix, |attr| { *attr.local_name() == local_name && *attr.namespace() == namespace }); diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 8d5c2184c0f..525130af9fc 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1778,7 +1778,7 @@ impl Node { &Attr::new(window.r(), attr.r().local_name().clone(), attr.r().value().clone(), attr.r().name().clone(), attr.r().namespace().clone(), - attr.r().GetPrefix(), Some(copy_elem))); + attr.r().prefix().clone(), Some(copy_elem))); } }, _ => () |