Bug 1254106 - IonMonkey: Disable assertion of incorrect labels on OOM on ARM, like on x86 and x64, r=jandem

This commit is contained in:
Hannes Verschore 2016-04-08 05:47:24 -04:00
Родитель 24a20f7546
Коммит 99dfa87ea8
1 изменённых файлов: 8 добавлений и 7 удалений

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

@ -2771,6 +2771,13 @@ Assembler::bind(Label* label, BufferOffset boff)
#ifdef JS_DISASM_ARM
spewLabel(label);
#endif
if (oom()) {
// Ensure we always bind the label. This matches what we do on
// x86/x64 and silences the assert in ~Label.
label->bind(0);
return;
}
if (label->used()) {
bool more;
// If our caller didn't give us an explicit target to bind to then we
@ -2778,13 +2785,6 @@ Assembler::bind(Label* label, BufferOffset boff)
BufferOffset dest = boff.assigned() ? boff : nextOffset();
BufferOffset b(label);
do {
// Even a 0 offset may be invalid if we're out of memory.
if (oom()) {
// Ensure we always bind the label. This matches what we do on
// x86/x64 and silences the assert in ~Label.
label->bind(0);
return;
}
BufferOffset next;
more = nextLink(b, &next);
Instruction branch = *editSrc(b);
@ -2799,6 +2799,7 @@ Assembler::bind(Label* label, BufferOffset boff)
} while (more);
}
label->bind(nextOffset().getOffset());
MOZ_ASSERT(!oom());
}
void