зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1264948 - Check for OOM when linking all break keywords of switch statements. r=h4writer
This commit is contained in:
Родитель
a6319dc175
Коммит
cfeab082c9
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче