Bug 1264948 - Check for OOM when linking all break keywords of switch statements. r=h4writer

This commit is contained in:
Nicolas B. Pierron 2016-07-04 13:56:32 +00:00
Родитель a6319dc175
Коммит cfeab082c9
3 изменённых файлов: 12 добавлений и 1 удалений

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

@ -2824,7 +2824,10 @@ IonBuilder::createBreakCatchBlock(DeferredEdge* edge, jsbytecode* pc)
// Finish up remaining breaks.
while (edge) {
edge->block->end(MGoto::New(alloc(), successor));
MGoto* brk = MGoto::New(alloc().fallible(), successor);
if (!brk)
return nullptr;
edge->block->end(brk);
if (!successor->addPredecessor(alloc(), edge->block))
return nullptr;
edge = edge->next;

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

@ -2084,6 +2084,13 @@ MGoto::New(TempAllocator& alloc, MBasicBlock* target)
return new(alloc) MGoto(target);
}
MGoto*
MGoto::New(TempAllocator::Fallible alloc, MBasicBlock* target)
{
MOZ_ASSERT(target);
return new(alloc) MGoto(target);
}
MGoto*
MGoto::NewAsm(TempAllocator& alloc)
{

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

@ -2913,6 +2913,7 @@ class MGoto
public:
INSTRUCTION_HEADER(Goto)
static MGoto* New(TempAllocator& alloc, MBasicBlock* target);
static MGoto* New(TempAllocator::Fallible alloc, MBasicBlock* target);
// Factory for asm, which may patch the target later.
static MGoto* NewAsm(TempAllocator& alloc);