diff options
Diffstat (limited to 'src/components/script/dom/bindings')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 7 | ||||
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 17001fd734a..3b35999cb65 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -1792,7 +1792,7 @@ class CGWrapMethod(CGAbstractMethod): else: args = [Argument('*mut JSContext', 'aCx'), Argument("Box<%s>" % descriptor.concreteType, 'aObject', mutable=True)] - retval = 'JS<%s>' % descriptor.concreteType + retval = 'Temporary<%s>' % descriptor.concreteType CGAbstractMethod.__init__(self, descriptor, 'Wrap', retval, args, pub=True) def definition_body(self): @@ -1809,7 +1809,7 @@ assert!(proto.is_not_null()); raw.reflector().set_jsobject(obj); -return raw;""" % CreateBindingJSObject(self.descriptor, "scope")) +Temporary::new(raw)""" % CreateBindingJSObject(self.descriptor, "scope")) else: return CGGeneric("""\ %s @@ -1818,7 +1818,8 @@ with_compartment(aCx, obj, || { JS_SetPrototype(aCx, obj, proto); }); raw.reflector().set_jsobject(obj); -return raw;""" % CreateBindingJSObject(self.descriptor)) + +Temporary::new(raw)""" % CreateBindingJSObject(self.descriptor)) class CGIDLInterface(CGThing): diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs index 2c494c2008e..99398bfc2f8 100644 --- a/src/components/script/dom/bindings/utils.rs +++ b/src/components/script/dom/bindings/utils.rs @@ -377,9 +377,9 @@ pub trait Reflectable { pub fn reflect_dom_object<T: Reflectable> (obj: Box<T>, window: &JSRef<window::Window>, - wrap_fn: extern "Rust" fn(*mut JSContext, &JSRef<window::Window>, Box<T>) -> JS<T>) + wrap_fn: extern "Rust" fn(*mut JSContext, &JSRef<window::Window>, Box<T>) -> Temporary<T>) -> Temporary<T> { - Temporary::new(wrap_fn(window.deref().get_cx(), window, obj)) + wrap_fn(window.get_cx(), window, obj) } #[allow(raw_pointer_deriving)] |