diff options
author | Josh Matthews <josh@joshmatthews.net> | 2014-04-17 20:28:01 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2014-05-03 14:18:31 -0400 |
commit | a09a4bd297d48c2702e1e15a901b1fdec32dda83 (patch) | |
tree | 4de4af60eea5d6a0947ff1be6d384709c8b2a066 /src/components/script/dom/bindings/utils.rs | |
parent | 522d3f167b12fa79401eea5525c7b6133cae0f06 (diff) | |
download | servo-a09a4bd297d48c2702e1e15a901b1fdec32dda83.tar.gz servo-a09a4bd297d48c2702e1e15a901b1fdec32dda83.zip |
Root Temporary values for the duration of their lifetime.
Diffstat (limited to 'src/components/script/dom/bindings/utils.rs')
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs index cbccb90197a..96982ebb6e2 100644 --- a/src/components/script/dom/bindings/utils.rs +++ b/src/components/script/dom/bindings/utils.rs @@ -412,6 +412,10 @@ impl Reflector { self.object = object; } + pub fn rootable(&self) -> **JSObject { + &self.object as **JSObject + } + pub fn new() -> Reflector { Reflector { object: ptr::null(), @@ -616,14 +620,13 @@ pub extern fn outerize_global(_cx: *JSContext, obj: JSHandleObject) -> *JSObject } /// Returns the global object of the realm that the given JS object was created in. -pub fn global_object_for_js_object(obj: *JSObject) -> Temporary<window::Window> { +pub fn global_object_for_js_object(obj: *JSObject) -> JS<window::Window> { unsafe { let global = GetGlobalForObjectCrossCompartment(obj); let clasp = JS_GetClass(global); assert!(((*clasp).flags & (JSCLASS_IS_DOMJSCLASS | JSCLASS_IS_GLOBAL)) != 0); - Temporary::new( - FromJSValConvertible::from_jsval(ptr::null(), ObjectOrNullValue(global), ()) - .ok().expect("found DOM global that doesn't unwrap to Window")) + FromJSValConvertible::from_jsval(ptr::null(), ObjectOrNullValue(global), ()) + .ok().expect("found DOM global that doesn't unwrap to Window") } } |