diff options
author | Ms2ger <ms2ger@gmail.com> | 2013-11-09 21:30:41 +0100 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2013-11-12 13:32:53 +0100 |
commit | 803cd4b7cfa0e846d5fa89be04ef4140e6f1a7d2 (patch) | |
tree | ce2deda718150aeffbd8826a4550b2ada9f34f34 /src/components/script/dom/bindings | |
parent | 2975cb69e3bb4784647a5b7f6d5d4dac7b8241cf (diff) | |
download | servo-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.py | 10 | ||||
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 12 |
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| { |