1
0
forked from 0ad/0ad

SpiderMonkey 38 upgrade: 28/35

The GC API changed to have explicit start and step methods, and the
start/shrink cases now take the gc kind as a parameter. Patch by leper.
Addresses https://bugzilla.mozilla.org/show_bug.cgi?id=1099152

This was SVN commit r18682.
This commit is contained in:
Nicolas Auvray 2016-09-02 16:46:39 +00:00
parent 80c8c2c3d6
commit fe52bf0457

View File

@ -248,7 +248,10 @@ void ScriptRuntime::MaybeIncrementalGC(double delay)
printf("Running incremental GC slice \n");
#endif
PrepareContextsForIncrementalGC();
JS::IncrementalGC(m_rt, JS::gcreason::REFRESH_FRAME, GCSliceTimeBudget);
if (!JS::IsIncrementalGCInProgress(m_rt))
JS::StartIncrementalGC(m_rt, GC_NORMAL, JS::gcreason::REFRESH_FRAME, GCSliceTimeBudget);
else
JS::IncrementalGCSlice(m_rt, JS::gcreason::REFRESH_FRAME, GCSliceTimeBudget);
}
m_LastGCBytes = gcBytes;
}
@ -259,7 +262,7 @@ void ScriptRuntime::ShrinkingGC()
{
JS_SetGCParameter(m_rt, JSGC_MODE, JSGC_MODE_COMPARTMENT);
JS::PrepareForFullGC(m_rt);
JS::ShrinkingGC(m_rt, JS::gcreason::REFRESH_FRAME);
JS::GCForReason(m_rt, GC_SHRINK, JS::gcreason::REFRESH_FRAME);
JS_SetGCParameter(m_rt, JSGC_MODE, JSGC_MODE_INCREMENTAL);
}