зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1286795 part 1 - Change more GC APIs to take JSContext instead of JSRuntime. r=terrence
This commit is contained in:
Родитель
d1b0bda574
Коммит
1b710973b8
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче