Bug 1286795 part 1 - Change more GC APIs to take JSContext instead of JSRuntime. r=terrence

This commit is contained in:
Jan de Mooij 2016-07-23 19:51:23 +02:00
Родитель d1b0bda574
Коммит 1b710973b8
10 изменённых файлов: 23 добавлений и 32 удалений

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

@ -407,7 +407,7 @@ GCParameter(JSContext* cx, unsigned argc, Value* vp)
// Request mode.
if (args.length() == 1) {
uint32_t value = JS_GetGCParameter(cx->runtime(), param);
uint32_t value = JS_GetGCParameter(cx, param);
args.rval().setNumber(value);
return true;
}
@ -438,7 +438,7 @@ GCParameter(JSContext* cx, unsigned argc, Value* vp)
}
if (param == JSGC_MAX_BYTES) {
uint32_t gcBytes = JS_GetGCParameter(cx->runtime(), JSGC_BYTES);
uint32_t gcBytes = JS_GetGCParameter(cx, JSGC_BYTES);
if (value < gcBytes) {
JS_ReportError(cx,
"attempt to set maxBytes to the value less than the current "

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

@ -128,11 +128,11 @@ js::IterateGrayObjects(Zone* zone, GCThingCallback cellCallback, void* data)
}
JS_PUBLIC_API(void)
JS_IterateCompartments(JSRuntime* rt, void* data,
JS_IterateCompartments(JSContext* cx, void* data,
JSIterateCompartmentCallback compartmentCallback)
{
AutoTraceSession session(rt);
AutoTraceSession session(cx);
for (CompartmentsIter c(rt, WithAtoms); !c.done(); c.next())
(*compartmentCallback)(rt, data, c);
for (CompartmentsIter c(cx, WithAtoms); !c.done(); c.next())
(*compartmentCallback)(cx, data, c);
}

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

@ -1295,12 +1295,6 @@ JS_freeop(JSFreeOp* fop, void* p)
return FreeOp::get(fop)->free_(p);
}
JS_PUBLIC_API(JSFreeOp*)
JS_GetDefaultFreeOp(JSRuntime* rt)
{
return rt->defaultFreeOp();
}
JS_PUBLIC_API(void)
JS_updateMallocCounter(JSContext* cx, size_t nbytes)
{
@ -1433,10 +1427,10 @@ JS_SetGCParameter(JSContext* cx, JSGCParamKey key, uint32_t value)
}
JS_PUBLIC_API(uint32_t)
JS_GetGCParameter(JSRuntime* rt, JSGCParamKey key)
JS_GetGCParameter(JSContext* cx, JSGCParamKey key)
{
AutoLockGC lock(rt);
return rt->gc.getParameter(key, lock);
AutoLockGC lock(cx);
return cx->gc.getParameter(key, lock);
}
static const size_t NumGCConfigs = 14;

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

@ -1367,7 +1367,7 @@ typedef void (*JSIterateCompartmentCallback)(JSRuntime* rt, void* data, JSCompar
* returns. Also, barriers are disabled via the TraceSession.
*/
extern JS_PUBLIC_API(void)
JS_IterateCompartments(JSRuntime* rt, void* data,
JS_IterateCompartments(JSContext* cx, void* data,
JSIterateCompartmentCallback compartmentCallback);
/**
@ -1575,9 +1575,6 @@ JS_free(JSContext* cx, void* p);
extern JS_PUBLIC_API(void)
JS_freeop(JSFreeOp* fop, void* p);
extern JS_PUBLIC_API(JSFreeOp*)
JS_GetDefaultFreeOp(JSRuntime* rt);
extern JS_PUBLIC_API(void)
JS_updateMallocCounter(JSContext* cx, size_t nbytes);
@ -1765,7 +1762,7 @@ extern JS_PUBLIC_API(void)
JS_SetGCParameter(JSContext* cx, JSGCParamKey key, uint32_t value);
extern JS_PUBLIC_API(uint32_t)
JS_GetGCParameter(JSRuntime* rt, JSGCParamKey key);
JS_GetGCParameter(JSContext* cx, JSGCParamKey key);
extern JS_PUBLIC_API(void)
JS_SetGCParametersBasedOnAvailableMemory(JSContext* cx, uint32_t availMem);

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

@ -590,9 +590,9 @@ js::TraceWeakMaps(WeakMapTracer* trc)
}
extern JS_FRIEND_API(bool)
js::AreGCGrayBitsValid(JSRuntime* rt)
js::AreGCGrayBitsValid(JSContext* cx)
{
return rt->gc.areGrayBitsValid();
return cx->gc.areGrayBitsValid();
}
JS_FRIEND_API(bool)

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

@ -508,7 +508,7 @@ extern JS_FRIEND_API(void)
TraceWeakMaps(WeakMapTracer* trc);
extern JS_FRIEND_API(bool)
AreGCGrayBitsValid(JSRuntime* rt);
AreGCGrayBitsValid(JSContext* cx);
extern JS_FRIEND_API(bool)
ZoneGlobalsAreAllGray(JS::Zone* zone);

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

@ -782,10 +782,10 @@ CollectRuntimeStatsHelper(JSContext* cx, RuntimeStats* rtStats, ObjectPrivateVis
return false;
rtStats->gcHeapChunkTotal =
size_t(JS_GetGCParameter(rt, JSGC_TOTAL_CHUNKS)) * gc::ChunkSize;
size_t(JS_GetGCParameter(cx, JSGC_TOTAL_CHUNKS)) * gc::ChunkSize;
rtStats->gcHeapUnusedChunks =
size_t(JS_GetGCParameter(rt, JSGC_UNUSED_CHUNKS)) * gc::ChunkSize;
size_t(JS_GetGCParameter(cx, JSGC_UNUSED_CHUNKS)) * gc::ChunkSize;
IterateChunks(cx, &rtStats->gcHeapDecommittedArenas,
DecommittedArenasChunkCallback);

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

@ -615,7 +615,7 @@ void XPCJSRuntime::TraceNativeBlackRoots(JSTracer* trc)
for (e = mObjectHolderRoots; e; e = e->GetNextRoot())
static_cast<XPCJSObjectHolder*>(e)->TraceJS(trc);
dom::TraceBlackJS(trc, JS_GetGCParameter(Runtime(), JSGC_NUMBER),
dom::TraceBlackJS(trc, JS_GetGCParameter(Context(), JSGC_NUMBER),
nsXPConnect::XPConnect()->IsShuttingDown());
}
@ -1822,8 +1822,8 @@ xpc::RemoveGCCallback(xpcGCCallback cb)
static int64_t
JSMainRuntimeGCHeapDistinguishedAmount()
{
JSRuntime* rt = nsXPConnect::GetRuntimeInstance()->Runtime();
return int64_t(JS_GetGCParameter(rt, JSGC_TOTAL_CHUNKS)) *
JSContext* cx = nsXPConnect::GetRuntimeInstance()->Context();
return int64_t(JS_GetGCParameter(cx, JSGC_TOTAL_CHUNKS)) *
js::gc::ChunkSize;
}
@ -2727,7 +2727,7 @@ class JSMainRuntimeCompartmentsReporter final : public nsIMemoryReporter
Data data;
data.anonymizeID = anonymize ? 1 : 0;
JS_IterateCompartments(nsXPConnect::GetRuntimeInstance()->Runtime(),
JS_IterateCompartments(nsXPConnect::GetRuntimeInstance()->Context(),
&data, CompartmentCallback);
for (size_t i = 0; i < data.paths.length(); i++)

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

@ -472,7 +472,7 @@ XPCJSRuntime::AssertInvalidWrappedJSNotInTable(nsXPCWrappedJS* wrapper) const
if (!wrapper->IsValid()) {
MOZ_ASSERT(!GetMultiCompartmentWrappedJSMap()->HasWrapper(wrapper));
if (!mGCIsRunning)
JS_IterateCompartments(Runtime(), wrapper, NotHasWrapperAssertionCallback);
JS_IterateCompartments(Context(), wrapper, NotHasWrapperAssertionCallback);
}
#endif
}

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

@ -1235,8 +1235,8 @@ CycleCollectedJSRuntime::FixWeakMappingGrayBits() const
bool
CycleCollectedJSRuntime::AreGCGrayBitsValid() const
{
MOZ_ASSERT(mJSRuntime);
return js::AreGCGrayBitsValid(mJSRuntime);
MOZ_ASSERT(mJSContext);
return js::AreGCGrayBitsValid(mJSContext);
}
void