зеркало из https://github.com/mozilla/gecko-dev.git
Use right compartment when resolving prototypes (bug 620028, r=jst).
This commit is contained in:
Родитель
5816101b08
Коммит
53b8d1381b
|
@ -6266,6 +6266,11 @@ ResolvePrototype(nsIXPConnect *aXPConnect, nsGlobalWindow *aWin, JSContext *cx,
|
|||
}
|
||||
|
||||
if (dot_prototype) {
|
||||
JSAutoEnterCompartment ac;
|
||||
if (!ac.enter(cx, dot_prototype)) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
JSObject *xpc_proto_proto = ::JS_GetPrototype(cx, dot_prototype);
|
||||
|
||||
if (proto &&
|
||||
|
@ -6277,6 +6282,11 @@ ResolvePrototype(nsIXPConnect *aXPConnect, nsGlobalWindow *aWin, JSContext *cx,
|
|||
}
|
||||
}
|
||||
} else {
|
||||
JSAutoEnterCompartment ac;
|
||||
if (!ac.enter(cx, winobj)) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
dot_prototype = ::JS_NewObject(cx, &sDOMConstructorProtoClass, proto,
|
||||
winobj);
|
||||
NS_ENSURE_TRUE(dot_prototype, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
|
Загрузка…
Ссылка в новой задаче