Bug 1130226 - Part 2: Rename MAYBEGC to EAGER_ALLOC_TRIGGER and fix some improper uses; r=jonco
--- a/js/public/GCAPI.h
+++ b/js/public/GCAPI.h
@@ -40,29 +40,30 @@ typedef enum JSGCInvocationKind {
GC_SHRINK = 1
} JSGCInvocationKind;
namespace JS {
#define GCREASONS(D) \
/* Reasons internal to the JS engine */ \
D(API) \
- D(MAYBEGC) \
+ D(EAGER_ALLOC_TRIGGER) \
D(DESTROY_RUNTIME) \
D(DESTROY_CONTEXT) \
D(LAST_DITCH) \
D(TOO_MUCH_MALLOC) \
D(ALLOC_TRIGGER) \
D(DEBUG_GC) \
D(COMPARTMENT_REVIVED) \
D(RESET) \
D(OUT_OF_NURSERY) \
D(EVICT_NURSERY) \
D(FULL_STORE_BUFFER) \
D(SHARED_MEMORY_LIMIT) \
+ D(PERIODIC_FULL_GC) \
\
/* These are reserved for future use. */ \
D(RESERVED0) \
D(RESERVED1) \
D(RESERVED2) \
D(RESERVED3) \
D(RESERVED4) \
D(RESERVED5) \
@@ -73,17 +74,16 @@ namespace JS {
D(RESERVED10) \
D(RESERVED11) \
D(RESERVED12) \
D(RESERVED13) \
D(RESERVED14) \
D(RESERVED15) \
D(RESERVED16) \
D(RESERVED17) \
- D(RESERVED18) \
\
/* Reasons from Firefox */ \
D(DOM_WINDOW_UTILS) \
D(COMPONENT_UTILS) \
D(MEM_PRESSURE) \
D(CC_WAITING) \
D(CC_FORCED) \
D(LOAD_END) \
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -3203,31 +3203,31 @@ GCRuntime::triggerZoneGC(Zone *zone, JS:
bool
GCRuntime::maybeGC(Zone *zone)
{
MOZ_ASSERT(CurrentThreadCanAccessRuntime(rt));
#ifdef JS_GC_ZEAL
if (zealMode == ZealAllocValue || zealMode == ZealPokeValue) {
JS::PrepareForFullGC(rt);
- gc(GC_NORMAL, JS::gcreason::MAYBEGC);
+ gc(GC_NORMAL, JS::gcreason::DEBUG_GC);
return true;
}
#endif
if (gcIfRequested())
return true;
if (zone->usage.gcBytes() > 1024 * 1024 &&
zone->threshold.isCloseToAllocTrigger(zone->usage, schedulingState.inHighFrequencyGCMode()) &&
!isIncrementalGCInProgress() &&
!isBackgroundSweeping())
{
PrepareZoneForGC(zone);
- startGC(GC_NORMAL, JS::gcreason::MAYBEGC);
+ startGC(GC_NORMAL, JS::gcreason::EAGER_ALLOC_TRIGGER);
return true;
}
return false;
}
void
GCRuntime::maybePeriodicFullGC()
@@ -3243,17 +3243,17 @@ GCRuntime::maybePeriodicFullGC()
*/
#ifndef JS_MORE_DETERMINISTIC
int64_t now = PRMJ_Now();
if (nextFullGCTime && nextFullGCTime <= now && !isIncrementalGCInProgress()) {
if (chunkAllocationSinceLastGC ||
numArenasFreeCommitted > decommitThreshold)
{
JS::PrepareForFullGC(rt);
- startGC(GC_SHRINK, JS::gcreason::MAYBEGC);
+ startGC(GC_SHRINK, JS::gcreason::PERIODIC_FULL_GC);
} else {
nextFullGCTime = now + GC_IDLE_FULL_SPAN;
}
}
#endif
}
// Do all possible decommit immediately from the current thread without
@@ -6086,17 +6086,17 @@ static bool
IsDeterministicGCReason(JS::gcreason::Reason reason)
{
if (reason > JS::gcreason::DEBUG_GC &&
reason != JS::gcreason::CC_FORCED && reason != JS::gcreason::SHUTDOWN_CC)
{
return false;
}
- if (reason == JS::gcreason::MAYBEGC)
+ if (reason == JS::gcreason::EAGER_ALLOC_TRIGGER)
return false;
return true;
}
#endif
gcstats::ZoneGCStats
GCRuntime::scanZonesBeforeGC()