Bug 753615 - Ensure we don't re-enter a GC phase (r=terrence)

This commit is contained in:
Bill McCloskey
2012-05-10 10:29:45 -07:00
parent e6ccc4d5ee
commit 2b058a31c1
2 changed files with 9 additions and 2 deletions

View File

@@ -599,6 +599,9 @@ Statistics::endSlice()
void
Statistics::beginPhase(Phase phase)
{
/* Guard against re-entry */
JS_ASSERT(!phaseStartTimes[phase]);
phaseStartTimes[phase] = PRMJ_Now();
phaseStartFaults[phase] = gc::GetPageFaultCount();
@@ -614,6 +617,7 @@ Statistics::endPhase(Phase phase)
int64_t t = PRMJ_Now() - phaseStartTimes[phase];
slices.back().phaseTimes[phase] += t;
phaseTimes[phase] += t;
phaseStartTimes[phase] = 0;
size_t faults = gc::GetPageFaultCount() - phaseStartFaults[phase];
slices.back().phaseFaults[phase] += faults;