Bug 1569608 - Fix rooting hazard when initialising realm instrumentation objects r=sfink?

Depends on D39496

Differential Revision: https://phabricator.services.mozilla.com/D39728

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jon Coppeard 2019-07-30 00:41:36 +00:00
parent 2b37722eaa
commit 310e5172b7
2 changed files with 5 additions and 5 deletions

View File

@ -136,8 +136,9 @@ bool RealmInstrumentation::install(JSContext* cx, Handle<GlobalObject*> global,
kinds |= (uint32_t) kind;
}
UniquePtr<RealmInstrumentation> instrumentation =
MakeUnique<RealmInstrumentation>(cx->zone(), callback, dbgObject, kinds);
Rooted<UniquePtr<RealmInstrumentation>> instrumentation(
cx,
MakeUnique<RealmInstrumentation>(cx->zone(), callback, dbgObject, kinds));
if (!instrumentation) {
ReportOutOfMemory(cx);
return false;

View File

@ -53,9 +53,6 @@ class RealmInstrumentation {
// int32_t so it can be directly accessed from JIT code.
int32_t active = 0;
void trace(JSTracer* trc);
friend struct GCManagedDeletePolicy<RealmInstrumentation>;
public:
static bool install(JSContext* cx, Handle<GlobalObject*> global,
HandleObject callback,
@ -85,6 +82,8 @@ class RealmInstrumentation {
RealmInstrumentation(Zone* zone, JSObject* callback, JSObject* dbgObject,
uint32_t kinds);
void trace(JSTracer* trc);
static void holderFinalize(FreeOp* fop, JSObject* obj);
static void holderTrace(JSTracer* trc, JSObject* obj);
};