Bug 1041307 - Don't try to finalize JITcode in non-ion builds. r=billm

This commit is contained in:
Emanuel Hoogeveen 2014-07-20 08:23:00 +02:00
parent 62b0164ace
commit 9d5c6c8fed
2 changed files with 15 additions and 3 deletions

View File

@ -344,27 +344,35 @@ static const AllocKind FinalizePhaseScripts[] = {
FINALIZE_LAZY_SCRIPT
};
#ifdef JS_ION
static const AllocKind FinalizePhaseJitCode[] = {
FINALIZE_JITCODE
};
#endif
static const AllocKind * const FinalizePhases[] = {
FinalizePhaseStrings,
FinalizePhaseScripts,
FinalizePhaseJitCode
#ifdef JS_ION
FinalizePhaseJitCode,
#endif
};
static const int FinalizePhaseCount = sizeof(FinalizePhases) / sizeof(AllocKind*);
static const int FinalizePhaseLength[] = {
sizeof(FinalizePhaseStrings) / sizeof(AllocKind),
sizeof(FinalizePhaseScripts) / sizeof(AllocKind),
sizeof(FinalizePhaseJitCode) / sizeof(AllocKind)
#ifdef JS_ION
sizeof(FinalizePhaseJitCode) / sizeof(AllocKind),
#endif
};
static const gcstats::Phase FinalizePhaseStatsPhase[] = {
gcstats::PHASE_SWEEP_STRING,
gcstats::PHASE_SWEEP_SCRIPT,
gcstats::PHASE_SWEEP_JITCODE
#ifdef JS_ION
gcstats::PHASE_SWEEP_JITCODE,
#endif
};
/*
@ -2142,12 +2150,14 @@ ArenaLists::queueScriptsForSweep(FreeOp *fop)
queueForForegroundSweep(fop, FINALIZE_LAZY_SCRIPT);
}
#ifdef JS_ION
void
ArenaLists::queueJitCodeForSweep(FreeOp *fop)
{
gcstats::AutoPhase ap(fop->runtime()->gc.stats, gcstats::PHASE_SWEEP_JITCODE);
queueForForegroundSweep(fop, FINALIZE_JITCODE);
}
#endif
void
ArenaLists::queueShapesForSweep(FreeOp *fop)

View File

@ -919,7 +919,9 @@ class ArenaLists
void queueStringsAndSymbolsForSweep(FreeOp *fop);
void queueShapesForSweep(FreeOp *fop);
void queueScriptsForSweep(FreeOp *fop);
#ifdef JS_ION
void queueJitCodeForSweep(FreeOp *fop);
#endif
bool foregroundFinalize(FreeOp *fop, AllocKind thingKind, SliceBudget &sliceBudget,
SortedArenaList &sweepList);