Skip to content

Instantly share code, notes, and snippets.

@allstarschh
Created October 18, 2019 11:44
Show Gist options
  • Save allstarschh/7b1a0776c437539fb83ac8b23abfd319 to your computer and use it in GitHub Desktop.
Save allstarschh/7b1a0776c437539fb83ac8b23abfd319 to your computer and use it in GitHub Desktop.
commit af86cf932c9cd76eeaf404896e1603a58d442a56
Author: Yoshi Cheng-Hao Huang <allstars.chh@gmail.com>
Date: Fri Oct 18 13:40:39 2019 +0200
Bug 1576592 - bail out if atom is nullptr.
diff --git a/js/src/vm/JSAtom.cpp b/js/src/vm/JSAtom.cpp
index 9b813f48f39d..07eb473376b0 100644
--- a/js/src/vm/JSAtom.cpp
+++ b/js/src/vm/JSAtom.cpp
@@ -596,16 +596,23 @@ bool AtomsTable::sweepIncrementally(SweepIterator& atomsToSweep,
while (!atomsToSweep.empty()) {
budget.step();
if (budget.isOverBudget()) {
return false;
}
JSAtom* atom = atomsToSweep.front();
MOZ_DIAGNOSTIC_ASSERT(atom);
+ // TODO: Bug XXX
+ // skip in opt build.
+ if (!atom) {
+ atomsToSweep.removeFront();
+ continue;
+ }
+
// TODO: Bug 1574981 - investigate talos regression in
// AtomsTable::sweepIncrementally
if (IsAboutToBeFinalizedUnbarriered(&atom)) {
MOZ_ASSERT(!atom->isPinned());
atomsToSweep.removeFront();
} else {
MOZ_ASSERT(atom == atomsToSweep.front());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment