mirror of
https://github.com/servo/servo.git
synced 2025-06-24 09:04:33 +01:00
Use JS_ObjectToOuterObject in wrap callbacks.
This commit is contained in:
parent
765cea73d9
commit
8182105204
2 changed files with 5 additions and 28 deletions
|
@ -37,6 +37,7 @@ use js::jsapi::{JSContext, JSObject, JSBool, jsid, JSClass, JSNative};
|
||||||
use js::jsapi::{JSFunctionSpec, JSPropertySpec};
|
use js::jsapi::{JSFunctionSpec, JSPropertySpec};
|
||||||
use js::jsapi::{JS_NewGlobalObject, JS_InitStandardClasses};
|
use js::jsapi::{JS_NewGlobalObject, JS_InitStandardClasses};
|
||||||
use js::jsapi::{JSString};
|
use js::jsapi::{JSString};
|
||||||
|
use js::jsfriendapi::JS_ObjectToOuterObject;
|
||||||
use js::jsfriendapi::bindgen::JS_NewObjectWithUniqueType;
|
use js::jsfriendapi::bindgen::JS_NewObjectWithUniqueType;
|
||||||
use js::jsval::JSVal;
|
use js::jsval::JSVal;
|
||||||
use js::jsval::{PrivateValue, ObjectValue, NullValue, ObjectOrNullValue};
|
use js::jsval::{PrivateValue, ObjectValue, NullValue, ObjectOrNullValue};
|
||||||
|
@ -594,38 +595,14 @@ pub fn CreateDOMGlobal(cx: *JSContext, class: *JSClass) -> *JSObject {
|
||||||
|
|
||||||
pub extern fn wrap_for_same_compartment(cx: *JSContext, obj: *JSObject) -> *JSObject {
|
pub extern fn wrap_for_same_compartment(cx: *JSContext, obj: *JSObject) -> *JSObject {
|
||||||
unsafe {
|
unsafe {
|
||||||
let clasp = JS_GetClass(obj);
|
JS_ObjectToOuterObject(cx as *mut _, obj as *mut _) as *_
|
||||||
let clasp = clasp as *js::Class;
|
|
||||||
match (*clasp).ext.outerObject {
|
|
||||||
Some(outerize) => {
|
|
||||||
debug!("found an outerize hook");
|
|
||||||
let obj = JSHandleObject { unnamed: &obj };
|
|
||||||
outerize(cx, obj)
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
debug!("no outerize hook found");
|
|
||||||
obj
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub extern fn pre_wrap(cx: *mut JSContext, _scope: *mut JSObject,
|
pub extern fn pre_wrap(cx: *mut JSContext, _scope: *mut JSObject,
|
||||||
obj: *mut JSObject, flags: c_uint) -> *mut JSObject {
|
obj: *mut JSObject, _flags: c_uint) -> *mut JSObject {
|
||||||
unsafe {
|
unsafe {
|
||||||
let clasp = JS_GetClass(obj as *_);
|
JS_ObjectToOuterObject(cx, obj)
|
||||||
let clasp = clasp as *js::Class;
|
|
||||||
match (*clasp).ext.outerObject {
|
|
||||||
Some(outerize) => {
|
|
||||||
debug!("found an outerize hook");
|
|
||||||
let obj = JSHandleObject { unnamed: &(obj as *_) };
|
|
||||||
outerize(cx as *_, obj) as *mut _
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
debug!("no outerize hook found");
|
|
||||||
obj
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 07f19496bd7703b502812a6b4228f08dec59ec0b
|
Subproject commit ff296137c652248138eb7f5a377d8daac52ed233
|
Loading…
Add table
Add a link
Reference in a new issue