Bug 1276317 part 1. Change JS_SetGCZeal to take a JSRuntime, not a JSContext. r=jandem

This commit is contained in:
Boris Zbarsky 2016-06-02 10:34:38 -04:00
Родитель b2c68458a8
Коммит f86c21cecc
12 изменённых файлов: 16 добавлений и 16 удалений

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

@ -592,7 +592,7 @@ nsJSContext::JSOptionChangedCallback(const char *pref, void *data)
int32_t zeal = Preferences::GetInt(js_zeal_option_str, -1);
int32_t frequency = Preferences::GetInt(js_zeal_frequency_str, JS_DEFAULT_ZEAL_FREQ);
if (zeal >= 0)
::JS_SetGCZeal(context->mContext, (uint8_t)zeal, frequency);
::JS_SetGCZeal(JS_GetRuntime(context->mContext), (uint8_t)zeal, frequency);
#endif
}

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

@ -805,7 +805,7 @@ CreateJSContextForWorker(WorkerPrivate* aWorkerPrivate, JSRuntime* aRuntime)
js::SetCTypesActivityCallback(aRuntime, CTypesActivityCallback);
#ifdef JS_GC_ZEAL
JS_SetGCZeal(workerCx, settings.gcZeal, settings.gcZealFrequency);
JS_SetGCZeal(aRuntime, settings.gcZeal, settings.gcZealFrequency);
#endif
return workerCx;

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

@ -6367,7 +6367,7 @@ WorkerPrivate::UpdateGCZealInternal(JSContext* aCx, uint8_t aGCZeal,
{
AssertIsOnWorkerThread();
JS_SetGCZeal(aCx, aGCZeal, aFrequency);
JS_SetGCZeal(JS_GetRuntime(aCx), aGCZeal, aFrequency);
for (uint32_t index = 0; index < mChildWorkers.Length(); index++) {
mChildWorkers[index]->UpdateGCZeal(aGCZeal, aFrequency);

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

@ -259,7 +259,7 @@ GCZeal(JSContext *cx, unsigned argc, JS::Value *vp)
if (!ToUint32(cx, args.get(0), &zeal))
return false;
JS_SetGCZeal(cx, uint8_t(zeal), JS_DEFAULT_ZEAL_FREQ);
JS_SetGCZeal(JS_GetRuntime(cx), uint8_t(zeal), JS_DEFAULT_ZEAL_FREQ);
return true;
}
#endif

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

@ -720,7 +720,7 @@ GCZeal(JSContext* cx, unsigned argc, Value* vp)
return false;
}
JS_SetGCZeal(cx, (uint8_t)zeal, frequency);
JS_SetGCZeal(cx->runtime(), (uint8_t)zeal, frequency);
args.rval().setUndefined();
return true;
}
@ -1303,7 +1303,7 @@ OOMTest(JSContext* cx, unsigned argc, Value* vp)
threadEnd = threadOption + 1;
}
JS_SetGCZeal(cx, 0, JS_DEFAULT_ZEAL_FREQ);
JS_SetGCZeal(cx->runtime(), 0, JS_DEFAULT_ZEAL_FREQ);
for (unsigned thread = threadStart; thread < threadEnd; thread++) {
if (verbose)

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

@ -99,7 +99,7 @@ BEGIN_TEST(testGCFinalizeCallback)
/* Full GC with reset due to new compartment, becoming compartment GC. */
FinalizeCalls = 0;
JS_SetGCZeal(cx, 9, 1000000);
JS_SetGCZeal(rt, 9, 1000000);
JS::PrepareForFullGC(rt);
js::SliceBudget budget(js::WorkBudget(1));
rt->gc.startDebugGC(GC_NORMAL, budget);
@ -120,7 +120,7 @@ BEGIN_TEST(testGCFinalizeCallback)
CHECK(!IsCompartmentGCBuffer[i]);
CHECK(IsCompartmentGCBuffer[FinalizeCalls - 1]);
JS_SetGCZeal(cx, 0, 0);
JS_SetGCZeal(rt, 0, 0);
#endif

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

@ -86,7 +86,7 @@ BEGIN_TEST(testIncrementalRoots)
#ifdef JS_GC_ZEAL
// Disable zeal modes because this test needs to control exactly when the GC happens.
JS_SetGCZeal(cx, 0, 100);
JS_SetGCZeal(rt, 0, 100);
#endif
// Construct a big object graph to mark. In JS, the resulting object graph

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

@ -434,14 +434,14 @@ class AutoLeaveZeal
explicit AutoLeaveZeal(JSContext* cx) : cx_(cx) {
uint32_t dummy;
JS_GetGCZealBits(cx_, &zealBits_, &frequency_, &dummy);
JS_SetGCZeal(cx_, 0, 0);
JS_SetGCZeal(JS_GetRuntime(cx_), 0, 0);
JS::PrepareForFullGC(JS_GetRuntime(cx_));
JS::GCForReason(JS_GetRuntime(cx_), GC_SHRINK, JS::gcreason::DEBUG_GC);
}
~AutoLeaveZeal() {
for (size_t i = 0; i < sizeof(zealBits_) * 8; i++) {
if (zealBits_ & (1 << i))
JS_SetGCZeal(cx_, i, frequency_);
JS_SetGCZeal(JS_GetRuntime(cx_), i, frequency_);
}
#ifdef DEBUG

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

@ -6153,9 +6153,9 @@ JS_GetGCZealBits(JSContext* cx, uint32_t* zealBits, uint32_t* frequency, uint32_
}
JS_PUBLIC_API(void)
JS_SetGCZeal(JSContext* cx, uint8_t zeal, uint32_t frequency)
JS_SetGCZeal(JSRuntime* rt, uint8_t zeal, uint32_t frequency)
{
cx->runtime()->gc.setZeal(zeal, frequency);
rt->gc.setZeal(zeal, frequency);
}
JS_PUBLIC_API(void)

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

@ -5619,7 +5619,7 @@ extern JS_PUBLIC_API(void)
JS_GetGCZealBits(JSContext* cx, uint32_t* zealBits, uint32_t* frequency, uint32_t* nextScheduled);
extern JS_PUBLIC_API(void)
JS_SetGCZeal(JSContext* cx, uint8_t zeal, uint32_t frequency);
JS_SetGCZeal(JSRuntime* rt, uint8_t zeal, uint32_t frequency);
extern JS_PUBLIC_API(void)
JS_ScheduleGC(JSContext* cx, uint32_t count);

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

@ -3030,7 +3030,7 @@ NS_IMETHODIMP
nsXPCComponents_Utils::SetGCZeal(int32_t aValue, JSContext* cx)
{
#ifdef JS_GC_ZEAL
JS_SetGCZeal(cx, uint8_t(aValue), JS_DEFAULT_ZEAL_FREQ);
JS_SetGCZeal(JS_GetRuntime(cx), uint8_t(aValue), JS_DEFAULT_ZEAL_FREQ);
#endif
return NS_OK;
}

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

@ -448,7 +448,7 @@ GCZeal(JSContext* cx, unsigned argc, Value* vp)
if (!ToUint32(cx, args.get(0), &zeal))
return false;
JS_SetGCZeal(cx, uint8_t(zeal), JS_DEFAULT_ZEAL_FREQ);
JS_SetGCZeal(JS_GetRuntime(cx), uint8_t(zeal), JS_DEFAULT_ZEAL_FREQ);
args.rval().setUndefined();
return true;
}