Fix bug 554448. r=jst sr=sicking

--HG--
extra : rebase_source : d5b72e262ed2c9da30fae7fb4b4ea8ad75f511c4
This commit is contained in:
Blake Kaplan 2010-03-25 14:38:45 -07:00
Родитель cf4692d033
Коммит abf9f42e83
2 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -386,12 +386,13 @@ XPC_COW_FunctionWrapper(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
JSObject *scope = JS_GetGlobalForObject(cx, JSVAL_TO_OBJECT(funToCall));
for (uintN i = 0; i < argc; ++i) {
if (!JSVAL_IS_PRIMITIVE(argv[i]) &&
!RewrapObject(cx, scope, JSVAL_TO_OBJECT(argv[i]), UNKNOWN, &argv[i])) {
!RewrapObject(cx, scope, JSVAL_TO_OBJECT(argv[i]), XPCNW_EXPLICIT,
&argv[i])) {
return JS_FALSE;
}
}
if (!RewrapObject(cx, scope, obj, UNKNOWN, rval) ||
if (!RewrapObject(cx, scope, obj, XPCNW_EXPLICIT, rval) ||
!JS_CallFunctionValue(cx, JSVAL_TO_OBJECT(*rval), funToCall, argc, argv,
rval)) {
return JS_FALSE;
@ -450,8 +451,9 @@ RewrapForChrome(JSContext *cx, JSObject *wrapperObj, jsval *vp)
return JS_TRUE;
}
return RewrapObject(cx, JS_GetGlobalForObject(cx, GetWrappedObject(cx, wrapperObj)),
JSVAL_TO_OBJECT(v), UNKNOWN, vp);
JSObject *scope =
JS_GetGlobalForObject(cx, GetWrappedObject(cx, wrapperObj));
return RewrapObject(cx, scope, JSVAL_TO_OBJECT(v), XPCNW_EXPLICIT, vp);
}
JSBool

Просмотреть файл

@ -1116,6 +1116,8 @@ XPCWrappedNativeScope::GetWrapperFor(JSContext *cx, JSObject *obj,
"touching non-wrappednative object cross origin?");
NS_ASSERTION(hint == SJOW || hint == COW || hint == UNKNOWN, "bad hint");
#endif
if(hint & XPCNW)
hint = SJOW;
return hint;
}