mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 884410 - Handlify the JS_TransplantObject interfaces; r=jonco
--HG-- extra : rebase_source : f1c2adc7380e5806ce6b4fce5bb41f9400b9e1b1
This commit is contained in:
parent
892fe681ec
commit
075d331390
@ -2395,7 +2395,8 @@ nsGlobalWindow::SetNewDocument(nsIDocument* aDocument,
|
||||
} else {
|
||||
JS::Rooted<JSObject*> global(cx,
|
||||
xpc_UnmarkGrayObject(newInnerWindow->mJSObject));
|
||||
JSObject* outerObject = NewOuterWindowProxy(cx, global, thisChrome);
|
||||
JS::Rooted<JSObject*> outerObject(cx,
|
||||
NewOuterWindowProxy(cx, global, thisChrome));
|
||||
if (!outerObject) {
|
||||
NS_ERROR("out of memory");
|
||||
return NS_ERROR_FAILURE;
|
||||
@ -2403,7 +2404,8 @@ nsGlobalWindow::SetNewDocument(nsIDocument* aDocument,
|
||||
|
||||
js::SetProxyExtra(mJSObject, 0, js::PrivateValue(NULL));
|
||||
|
||||
outerObject = xpc::TransplantObject(cx, mJSObject, outerObject);
|
||||
JS::Rooted<JSObject*> obj(cx, mJSObject);
|
||||
outerObject = xpc::TransplantObject(cx, obj, outerObject);
|
||||
if (!outerObject) {
|
||||
NS_ERROR("unable to transplant wrappers, probably OOM");
|
||||
return NS_ERROR_FAILURE;
|
||||
|
@ -1592,8 +1592,8 @@ ReparentWrapper(JSContext* aCx, JS::HandleObject aObjArg)
|
||||
if (ww != aObj) {
|
||||
MOZ_ASSERT(cache->HasSystemOnlyWrapper());
|
||||
|
||||
JSObject *newwrapper =
|
||||
xpc::WrapperFactory::WrapSOWObject(aCx, newobj);
|
||||
JS::RootedObject newwrapper(aCx,
|
||||
xpc::WrapperFactory::WrapSOWObject(aCx, newobj));
|
||||
if (!newwrapper) {
|
||||
MOZ_CRASH();
|
||||
}
|
||||
|
@ -1594,10 +1594,8 @@ JS_WrapId(JSContext *cx, jsid *idp)
|
||||
*/
|
||||
|
||||
JS_PUBLIC_API(JSObject *)
|
||||
JS_TransplantObject(JSContext *cx, JSObject *origobjArg, JSObject *targetArg)
|
||||
JS_TransplantObject(JSContext *cx, HandleObject origobj, HandleObject target)
|
||||
{
|
||||
RootedObject origobj(cx, origobjArg);
|
||||
RootedObject target(cx, targetArg);
|
||||
AssertHeapIsIdle(cx);
|
||||
JS_ASSERT(origobj != target);
|
||||
JS_ASSERT(!IsCrossCompartmentWrapper(origobj));
|
||||
@ -1667,16 +1665,11 @@ JS_TransplantObject(JSContext *cx, JSObject *origobjArg, JSObject *targetArg)
|
||||
*/
|
||||
JS_FRIEND_API(JSObject *)
|
||||
js_TransplantObjectWithWrapper(JSContext *cx,
|
||||
JSObject *origobjArg,
|
||||
JSObject *origwrapperArg,
|
||||
JSObject *targetobjArg,
|
||||
JSObject *targetwrapperArg)
|
||||
HandleObject origobj,
|
||||
HandleObject origwrapper,
|
||||
HandleObject targetobj,
|
||||
HandleObject targetwrapper)
|
||||
{
|
||||
RootedObject origobj(cx, origobjArg);
|
||||
RootedObject origwrapper(cx, origwrapperArg);
|
||||
RootedObject targetobj(cx, targetobjArg);
|
||||
RootedObject targetwrapper(cx, targetwrapperArg);
|
||||
|
||||
AutoMaybeTouchDeadZones agc(cx);
|
||||
AutoDisableProxyCheck adpc(cx->runtime());
|
||||
|
||||
|
@ -1999,14 +1999,14 @@ extern JS_PUBLIC_API(JSBool)
|
||||
JS_WrapId(JSContext *cx, jsid *idp);
|
||||
|
||||
extern JS_PUBLIC_API(JSObject *)
|
||||
JS_TransplantObject(JSContext *cx, JSObject *origobj, JSObject *target);
|
||||
JS_TransplantObject(JSContext *cx, JS::HandleObject origobj, JS::HandleObject target);
|
||||
|
||||
extern JS_FRIEND_API(JSObject *)
|
||||
js_TransplantObjectWithWrapper(JSContext *cx,
|
||||
JSObject *origobj,
|
||||
JSObject *origwrapper,
|
||||
JSObject *targetobj,
|
||||
JSObject *targetwrapper);
|
||||
JS::HandleObject origobj,
|
||||
JS::HandleObject origwrapper,
|
||||
JS::HandleObject targetobj,
|
||||
JS::HandleObject targetwrapper);
|
||||
|
||||
extern JS_PUBLIC_API(JSBool)
|
||||
JS_RefreshCrossCompartmentWrappers(JSContext *cx, JSObject *ob);
|
||||
|
@ -1464,9 +1464,9 @@ XPCWrappedNative::ReparentWrapperIfFound(XPCWrappedNativeScope* aOldScope,
|
||||
MOZ_CRASH();
|
||||
}
|
||||
|
||||
JSObject *ww = wrapper->GetWrapper();
|
||||
RootedObject ww(cx, wrapper->GetWrapper());
|
||||
if (ww) {
|
||||
JSObject *newwrapper;
|
||||
RootedObject newwrapper(cx);
|
||||
MOZ_ASSERT(wrapper->NeedsSOW(), "weird wrapper wrapper");
|
||||
newwrapper = xpc::WrapperFactory::WrapSOWObject(cx, newobj);
|
||||
if (!newwrapper)
|
||||
|
@ -40,12 +40,12 @@ class nsIGlobalObject;
|
||||
|
||||
namespace xpc {
|
||||
JSObject *
|
||||
TransplantObject(JSContext *cx, JSObject *origobj, JSObject *target);
|
||||
TransplantObject(JSContext *cx, JS::HandleObject origobj, JS::HandleObject target);
|
||||
|
||||
JSObject *
|
||||
TransplantObjectWithWrapper(JSContext *cx,
|
||||
JSObject *origobj, JSObject *origwrapper,
|
||||
JSObject *targetobj, JSObject *targetwrapper);
|
||||
JS::HandleObject origobj, JS::HandleObject origwrapper,
|
||||
JS::HandleObject targetobj, JS::HandleObject targetwrapper);
|
||||
|
||||
// Return a raw XBL scope object corresponding to contentScope, which must
|
||||
// be an object whose global is a DOM window.
|
||||
|
@ -673,7 +673,7 @@ FixWaiverAfterTransplant(JSContext *cx, HandleObject oldWaiver, HandleObject new
|
||||
}
|
||||
|
||||
JSObject *
|
||||
TransplantObject(JSContext *cx, JSObject *origobj, JSObject *target)
|
||||
TransplantObject(JSContext *cx, JS::HandleObject origobj, JS::HandleObject target)
|
||||
{
|
||||
RootedObject oldWaiver(cx, WrapperFactory::GetXrayWaiver(origobj));
|
||||
RootedObject newIdentity(cx, JS_TransplantObject(cx, origobj, target));
|
||||
@ -687,8 +687,8 @@ TransplantObject(JSContext *cx, JSObject *origobj, JSObject *target)
|
||||
|
||||
JSObject *
|
||||
TransplantObjectWithWrapper(JSContext *cx,
|
||||
JSObject *origobj, JSObject *origwrapper,
|
||||
JSObject *targetobj, JSObject *targetwrapper)
|
||||
HandleObject origobj, HandleObject origwrapper,
|
||||
HandleObject targetobj, HandleObject targetwrapper)
|
||||
{
|
||||
RootedObject oldWaiver(cx, WrapperFactory::GetXrayWaiver(origobj));
|
||||
RootedObject newSameCompartmentWrapper(cx,
|
||||
|
Loading…
Reference in New Issue
Block a user