aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2014-01-25 08:16:12 -0800
committerSimon Sapin <simon.sapin@exyr.org>2014-01-25 11:50:06 -0800
commitae0cbda327b16e4f38b10e1913b04c3eaad0224e (patch)
tree2693f08a242c3a202cc1423501961aa1e678ff36 /src
parent5b0768c4f616d073a1631b1c706439ffe73f7e4a (diff)
downloadservo-ae0cbda327b16e4f38b10e1913b04c3eaad0224e.tar.gz
servo-ae0cbda327b16e4f38b10e1913b04c3eaad0224e.zip
Change Namespace::from_str to take &str, fix #1367
Diffstat (limited to 'src')
-rw-r--r--src/components/main/layout/wrapper.rs3
-rw-r--r--src/components/script/dom/element.rs8
-rw-r--r--src/components/script/dom/namespace.rs7
3 files changed, 9 insertions, 9 deletions
diff --git a/src/components/main/layout/wrapper.rs b/src/components/main/layout/wrapper.rs
index 34bd613e957..ca425072669 100644
--- a/src/components/main/layout/wrapper.rs
+++ b/src/components/main/layout/wrapper.rs
@@ -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) }
}
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index 3d080a56de7..c2e790fd53d 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -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)
}
diff --git a/src/components/script/dom/namespace.rs b/src/components/script/dom/namespace.rs
index c446b2969d6..354f95f69b2 100644
--- a/src/components/script/dom/namespace.rs
+++ b/src/components/script/dom/namespace.rs
@@ -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,