aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2013-11-09 21:30:41 +0100
committerMs2ger <ms2ger@gmail.com>2013-11-12 13:32:53 +0100
commit803cd4b7cfa0e846d5fa89be04ef4140e6f1a7d2 (patch)
treece2deda718150aeffbd8826a4550b2ada9f34f34 /src/components/script/dom/bindings
parent2975cb69e3bb4784647a5b7f6d5d4dac7b8241cf (diff)
downloadservo-803cd4b7cfa0e846d5fa89be04ef4140e6f1a7d2.tar.gz
servo-803cd4b7cfa0e846d5fa89be04ef4140e6f1a7d2.zip
Make DOMString represent a non-nullable string.
Diffstat (limited to 'src/components/script/dom/bindings')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py10
-rw-r--r--src/components/script/dom/bindings/utils.rs12
2 files changed, 11 insertions, 11 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 9f333ca6e75..c1739f1c13c 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1110,10 +1110,10 @@ for (uint32_t i = 0; i < length; ++i) {
declType, None, isOptional, None)
if isOptional:
- declType = "Option<DOMString>"
+ declType = "Option<Option<DOMString>>"
initialValue = "None"
else:
- declType = "DOMString"
+ declType = "Option<DOMString>"
initialValue = None
return (
@@ -1722,7 +1722,7 @@ def getRetvalDeclarationForType(returnType, descriptorProvider,
result = CGWrapper(result, pre="Nullable<", post=">")
return result, False
if returnType.isString():
- return CGGeneric("DOMString"), False
+ return CGGeneric("Option<DOMString>"), False
if returnType.isEnum():
if returnType.nullable():
raise TypeError("We don't support nullable enum return values")
@@ -2960,8 +2960,8 @@ class CGCallGenerator(CGThing):
if a.type.isObject() and not a.type.nullable() and not a.optional:
name = "(JSObject&)" + name
#XXXjdm Perhaps we should pass all nontrivial types by borrowed pointer
- # Aoid passing Option<DOMString> by reference. If only one of optional or
- # defaultValue are truthy we pass an Option, otherwise it's a concrete DOMString.
+ # Aoid passing Option<Option<DOMString>> by reference. If only one of optional or
+ # defaultValue are truthy we pass an Option, otherwise it's a concrete Option<DOMString>.
if a.type.isDictionary() or (a.type.isString() and not (bool(a.defaultValue) ^ a.optional)):
name = "&" + name
args.append(CGGeneric(name))
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index 6fa2a8ec0c3..61b6ad54776 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -116,9 +116,9 @@ extern fn InterfaceObjectToString(cx: *JSContext, _argc: c_uint, vp: *mut JSVal)
}
}
-pub type DOMString = Option<~str>;
+pub type DOMString = ~str;
-pub fn null_str_as_empty(s: &DOMString) -> ~str {
+pub fn null_str_as_empty(s: &Option<DOMString>) -> ~str {
// We don't use map_default because it would allocate ~"" even for Some.
match *s {
Some(ref s) => s.clone(),
@@ -126,14 +126,14 @@ pub fn null_str_as_empty(s: &DOMString) -> ~str {
}
}
-pub fn null_str_as_empty_ref<'a>(s: &'a DOMString) -> &'a str {
+pub fn null_str_as_empty_ref<'a>(s: &'a Option<DOMString>) -> &'a str {
match *s {
Some(ref s) => s.as_slice(),
None => &'a ""
}
}
-pub fn null_str_as_word_null(s: &DOMString) -> ~str {
+pub fn null_str_as_word_null(s: &Option<DOMString>) -> ~str {
// We don't use map_default because it would allocate ~"null" even for Some.
match *s {
Some(ref s) => s.clone(),
@@ -259,7 +259,7 @@ pub fn jsval_to_str(cx: *JSContext, v: JSVal,
}
#[fixed_stack_segment]
-pub fn jsval_to_domstring(cx: *JSContext, v: JSVal) -> Result<DOMString, ()> {
+pub fn jsval_to_domstring(cx: *JSContext, v: JSVal) -> Result<Option<DOMString>, ()> {
if jsval::is_null(v) || jsval::is_undefined(v) {
Ok(None)
} else {
@@ -273,7 +273,7 @@ pub fn jsval_to_domstring(cx: *JSContext, v: JSVal) -> Result<DOMString, ()> {
}
#[fixed_stack_segment]
-pub unsafe fn domstring_to_jsval(cx: *JSContext, string: &DOMString) -> JSVal {
+pub unsafe fn domstring_to_jsval(cx: *JSContext, string: &Option<DOMString>) -> JSVal {
match string {
&None => JSVAL_NULL,
&Some(ref s) => do s.to_utf16().as_imm_buf |buf, len| {