diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2013-11-09 03:55:30 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2013-11-14 20:35:36 +0900 |
commit | f5ef4365f46d31cb4aa85474345a5d2c20e86590 (patch) | |
tree | e4ac7016de573cfc179e1121d93eb384b3ef2fd7 /src/components/script/dom/bindings | |
parent | b1762655e6ce7e9ff8a79710a5b10bef34a3c26b (diff) | |
download | servo-f5ef4365f46d31cb4aa85474345a5d2c20e86590.tar.gz servo-f5ef4365f46d31cb4aa85474345a5d2c20e86590.zip |
Stop passing DOMStrings via borrowed pointer. (#1201)
Diffstat (limited to 'src/components/script/dom/bindings')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 8 | ||||
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 10 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 05255b95792..bb87667df83 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -1584,9 +1584,9 @@ for (uint32_t i = 0; i < length; ++i) { if type.isString(): if type.nullable(): - return (wrapAndSetPtr("*${jsvalPtr} = domstring_to_jsval(cx, &%s)" % result), False) + return (wrapAndSetPtr("*${jsvalPtr} = domstring_to_jsval(cx, %s)" % result), False) else: - return (wrapAndSetPtr("*${jsvalPtr} = str_to_jsval(cx, &%s)" % result), False) + return (wrapAndSetPtr("*${jsvalPtr} = str_to_jsval(cx, %s)" % result), False) if type.isEnum(): if type.nullable(): @@ -2961,9 +2961,7 @@ 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<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)): + if a.type.isDictionary(): 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 f3f24b34cc9..f79e8ae633a 100644 --- a/src/components/script/dom/bindings/utils.rs +++ b/src/components/script/dom/bindings/utils.rs @@ -111,7 +111,7 @@ extern fn InterfaceObjectToString(cx: *JSContext, _argc: c_uint, vp: *mut JSVal) assert!(jsval::is_string(v)); let name = jsstring_to_str(cx, jsval::to_string(v)); let retval = Some(~"function " + name + "() {\n [native code]\n}"); - *vp = domstring_to_jsval(cx, &retval); + *vp = domstring_to_jsval(cx, retval); return 1; } } @@ -273,7 +273,7 @@ pub fn jsval_to_domstring(cx: *JSContext, v: JSVal) -> Result<Option<DOMString>, } #[fixed_stack_segment] -pub unsafe fn str_to_jsval(cx: *JSContext, string: &DOMString) -> JSVal { +pub unsafe fn str_to_jsval(cx: *JSContext, string: DOMString) -> JSVal { do string.to_utf16().as_imm_buf |buf, len| { let jsstr = JS_NewUCStringCopyN(cx, buf, len as libc::size_t); if jsstr.is_null() { @@ -286,10 +286,10 @@ pub unsafe fn str_to_jsval(cx: *JSContext, string: &DOMString) -> JSVal { } #[fixed_stack_segment] -pub unsafe fn domstring_to_jsval(cx: *JSContext, string: &Option<DOMString>) -> JSVal { +pub unsafe fn domstring_to_jsval(cx: *JSContext, string: Option<DOMString>) -> JSVal { match string { - &None => JSVAL_NULL, - &Some(ref s) => str_to_jsval(cx, s), + None => JSVAL_NULL, + Some(s) => str_to_jsval(cx, s), } } |