Change Namespace::from_str to take &str, fix #1367

This commit is contained in:
Simon Sapin 2014-01-25 08:16:12 -08:00
parent 5b0768c4f6
commit ae0cbda327
3 changed files with 9 additions and 9 deletions

View file

@ -15,6 +15,7 @@
//! onto these objects and cause use-after-free.
use extra::url::Url;
use script::dom::bindings::utils::null_str_as_empty_ref;
use script::dom::element::{Element, HTMLAreaElementTypeId, HTMLAnchorElementTypeId};
use script::dom::element::{HTMLLinkElementTypeId};
use script::dom::htmliframeelement::HTMLIFrameElement;
@ -405,7 +406,7 @@ impl<'le> TElement for LayoutElement<'le> {
#[inline]
fn get_attr(&self, ns_url: Option<~str>, name: &str) -> Option<&'static str> {
let namespace = Namespace::from_str(ns_url);
let namespace = Namespace::from_str(null_str_as_empty_ref(&ns_url));
unsafe { self.element.get_attr_val_for_layout(namespace, name) }
}

View file

@ -7,7 +7,7 @@
use dom::attr::Attr;
use dom::attrlist::AttrList;
use dom::bindings::utils::{Reflectable, DOMString, ErrorResult, Fallible, Reflector};
use dom::bindings::utils::NamespaceError;
use dom::bindings::utils::{null_str_as_empty_ref, NamespaceError};
use dom::bindings::utils::{InvalidCharacter, QName, Name, InvalidXMLName, xml_name_type};
use dom::htmlcollection::HTMLCollection;
use dom::clientrect::ClientRect;
@ -402,7 +402,7 @@ impl Element {
}
pub fn GetAttributeNS(&self, namespace: Option<DOMString>, local_name: DOMString) -> Option<DOMString> {
let namespace = Namespace::from_str(namespace);
let namespace = Namespace::from_str(null_str_as_empty_ref(&namespace));
self.get_attribute(namespace, local_name)
.map(|attr| attr.value.clone())
}
@ -430,7 +430,7 @@ impl Element {
QName => {}
}
let namespace = Namespace::from_str(namespace_url);
let namespace = Namespace::from_str(null_str_as_empty_ref(&namespace_url));
self.set_attribute(abstract_self, namespace, name, value)
}
@ -449,7 +449,7 @@ impl Element {
abstract_self: AbstractNode,
namespace: Option<DOMString>,
localname: DOMString) -> ErrorResult {
let namespace = Namespace::from_str(namespace);
let namespace = Namespace::from_str(null_str_as_empty_ref(&namespace));
self.remove_attribute(abstract_self, namespace, localname)
}

View file

@ -2,8 +2,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::utils::{DOMString, null_str_as_empty_ref};
#[deriving(Eq, Clone)]
pub enum Namespace {
Null,
@ -17,8 +15,9 @@ pub enum Namespace {
}
impl Namespace {
pub fn from_str(url: Option<DOMString>) -> Namespace {
match null_str_as_empty_ref(&url) {
/// Empty string for "no namespace"
pub fn from_str(url: &str) -> Namespace {
match url {
"http://www.w3.org/1999/xhtml" => HTML,
"http://www.w3.org/XML/1998/namespace" => XML,
"http://www.w3.org/2000/xmlns/" => XMLNS,