diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 4 | ||||
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 8 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 6612e9c7486..f186e3f8024 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -2648,7 +2648,7 @@ class CGAbstractBindingMethod(CGAbstractExternMethod): " return false as JSBool;\n" "}\n" "\n" - "let this: *%s;" % self.descriptor.concreteType)) + "let this: *mut %s;" % self.descriptor.concreteType)) def generate_code(self): assert(False) # Override me @@ -4156,7 +4156,7 @@ class CGAbstractClassHook(CGAbstractExternMethod): def definition_body_prologue(self): return """ - let this: *%s = unwrap::<*%s>(obj); + let this: *mut %s = unwrap::<%s>(obj); """ % (self.descriptor.concreteType, self.descriptor.concreteType) def definition_body(self): diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs index cac4185d088..7b158c9c738 100644 --- a/src/components/script/dom/bindings/utils.rs +++ b/src/components/script/dom/bindings/utils.rs @@ -81,10 +81,10 @@ pub unsafe fn dom_object_slot(obj: *JSObject) -> u32 { } } -pub unsafe fn unwrap<T>(obj: *JSObject) -> T { +pub unsafe fn unwrap<T>(obj: *JSObject) -> *mut T { let slot = dom_object_slot(obj); let val = JS_GetReservedSlot(obj, slot); - cast::transmute(val.to_private()) + val.to_private() as *mut T } pub unsafe fn get_dom_class(obj: *JSObject) -> Result<DOMClass, ()> { @@ -103,7 +103,7 @@ pub unsafe fn get_dom_class(obj: *JSObject) -> Result<DOMClass, ()> { return Err(()); } -pub fn unwrap_object<T>(obj: *JSObject, proto_id: PrototypeList::id::ID, proto_depth: uint) -> Result<T, ()> { +pub fn unwrap_object<T>(obj: *JSObject, proto_id: PrototypeList::id::ID, proto_depth: uint) -> Result<*mut T, ()> { unsafe { get_dom_class(obj).and_then(|dom_class| { if dom_class.interface_chain[proto_depth] == proto_id { @@ -637,7 +637,7 @@ pub fn global_object_for_js_object(obj: *JSObject) -> JS<window::Window> { let clasp = JS_GetClass(global); assert!(((*clasp).flags & (JSCLASS_IS_DOMJSCLASS | JSCLASS_IS_GLOBAL)) != 0); // FIXME(jdm): Either don't hardcode or sanity assert prototype stuff. - match unwrap_object::<*mut window::Window>(global, PrototypeList::id::Window, 1) { + match unwrap_object(global, PrototypeList::id::Window, 1) { Ok(win) => JS::from_raw(win), Err(_) => fail!("found DOM global that doesn't unwrap to Window"), } |