Watch for script JIT handle invalidation after MakeJITScript, bug 759719. r=dvander

This commit is contained in:
Brian Hackett 2012-06-04 19:51:57 -07:00
Родитель 141da7cd35
Коммит 26d46956df
1 изменённых файлов: 9 добавлений и 4 удалений

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

@ -944,15 +944,20 @@ mjit::CanMethodJIT(JSContext *cx, JSScript *script, jsbytecode *pc,
jit = MakeJITScript(cx, script);
if (!jit)
return Compile_Error;
// Script analysis can trigger GC, watch in case needsBarrier() changed.
if (gcNumber != cx->runtime->gcNumber) {
FreeOp *fop = cx->runtime->defaultFreeOp();
jit->destroy(fop);
fop->free_(jit);
goto restart;
}
jith->setValid(jit);
} else {
jit = jith->getValid();
}
// Script analysis can trigger GC, watch in case needsBarrier() changed.
if (gcNumber != cx->runtime->gcNumber)
goto restart;
unsigned chunkIndex = jit->chunkIndex(pc);
ChunkDescriptor &desc = jit->chunkDescriptor(chunkIndex);