Make Element::prefix return an Option<&DOMString>

This commit is contained in:
Anthony Ramine 2016-11-30 13:45:10 +01:00
parent 2fcb908daa
commit a377caa7e9
4 changed files with 10 additions and 10 deletions

View file

@ -714,8 +714,8 @@ impl Element {
&self.namespace
}
pub fn prefix(&self) -> &Option<DOMString> {
&self.prefix
pub fn prefix(&self) -> Option<&DOMString> {
self.prefix.as_ref()
}
pub fn attrs(&self) -> Ref<[JS<Attr>]> {

View file

@ -151,11 +151,11 @@ impl HTMLCollection {
}
fn match_element(elem: &Element, qualified_name: &LocalName) -> bool {
match *elem.prefix() {
match elem.prefix() {
None => elem.local_name() == qualified_name,
Some(ref prefix) => qualified_name.starts_with(prefix as &str) &&
qualified_name.find(":") == Some((prefix as &str).len()) &&
qualified_name.ends_with(elem.local_name() as &str),
Some(prefix) => qualified_name.starts_with(&**prefix) &&
qualified_name.find(":") == Some(prefix.len()) &&
qualified_name.ends_with(&**elem.local_name()),
}
}

View file

@ -1738,7 +1738,7 @@ impl Node {
local: element.local_name().clone()
};
let element = Element::create(name,
element.prefix().as_ref().map(|p| Prefix::from(&**p)),
element.prefix().map(|p| Prefix::from(&**p)),
&document, ElementCreator::ScriptCreated);
Root::upcast::<Node>(element)
},
@ -1827,7 +1827,7 @@ impl Node {
NodeTypeId::Element(_) => {
let element = node.downcast::<Element>().unwrap();
// Step 1.
if *element.namespace() != ns!() && *element.prefix() == prefix {
if *element.namespace() != ns!() && element.prefix() == prefix.as_ref() {
return element.namespace().clone()
}
@ -2236,7 +2236,7 @@ impl NodeMethods for Node {
let element = node.downcast::<Element>().unwrap();
let other_element = other.downcast::<Element>().unwrap();
(*element.namespace() == *other_element.namespace()) &&
(*element.prefix() == *other_element.prefix()) &&
(element.prefix() == other_element.prefix()) &&
(*element.local_name() == *other_element.local_name()) &&
(element.attrs().len() == other_element.attrs().len())
}

View file

@ -114,7 +114,7 @@ impl<'a> TreeSink for Sink {
let elem = target.downcast::<Element>()
.expect("tried to get name of non-Element in XML parsing");
QName {
prefix: elem.prefix().as_ref().map_or(namespace_prefix!(""), |p| Prefix::from(&**p)),
prefix: elem.prefix().map_or(namespace_prefix!(""), |p| Prefix::from(&**p)),
namespace_url: elem.namespace().clone(),
local: elem.local_name().clone(),
}