author | Jon Coppeard <jcoppeard@mozilla.com> |
Fri, 16 Jun 2017 10:07:41 +0100 | |
changeset 364434 | 3ee00a7fa6fa7969f2b9e4b09d1c84454c16cd13 |
parent 364433 | de7215f52f9b3fedec694f1d0ade87cb968cb5d5 |
child 364435 | d64176330881d9d9fb9b8f1192e57903c7ca5d2a |
push id | 44921 |
push user | kwierso@gmail.com |
push date | Sat, 17 Jun 2017 01:28:49 +0000 |
treeherder | autoland@bbffa19e2379 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | sfink |
bugs | 1373209 |
milestone | 56.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/src/gc/Zone.cpp +++ b/js/src/gc/Zone.cpp @@ -246,18 +246,18 @@ Zone::discardJitCode(FreeOp* fop, bool d */ jitZone()->cfgSpace()->lifoAlloc().freeAll(); } #ifdef JSGC_HASH_TABLE_CHECKS void JS::Zone::checkUniqueIdTableAfterMovingGC() { - for (UniqueIdMap::Enum e(uniqueIds()); !e.empty(); e.popFront()) - js::gc::CheckGCThingAfterMovingGC(e.front().key()); + for (auto r = uniqueIds().all(); !r.empty(); r.popFront()) + js::gc::CheckGCThingAfterMovingGC(r.front().key()); } #endif uint64_t Zone::gcNumber() { // Zones in use by exclusive threads are not collected, and threads using // them cannot access the main runtime's gcNumber without racing.
--- a/js/src/vm/ObjectGroup.cpp +++ b/js/src/vm/ObjectGroup.cpp @@ -1902,27 +1902,27 @@ ObjectGroupCompartment::checkNewTableAft { /* * Assert that nothing points into the nursery or needs to be relocated, and * that the hash table entries are discoverable. */ if (!table || !table->initialized()) return; - for (NewTable::Enum e(*table); !e.empty(); e.popFront()) { - NewEntry entry = e.front(); + for (auto r = table->all(); !r.empty(); r.popFront()) { + NewEntry entry = r.front(); CheckGCThingAfterMovingGC(entry.group.unbarrieredGet()); TaggedProto proto = entry.group.unbarrieredGet()->proto(); if (proto.isObject()) CheckGCThingAfterMovingGC(proto.toObject()); CheckGCThingAfterMovingGC(entry.associated); const Class* clasp = entry.group.unbarrieredGet()->clasp(); if (entry.associated && entry.associated->is<JSFunction>()) clasp = nullptr; NewEntry::Lookup lookup(clasp, proto, entry.associated); auto ptr = table->lookup(lookup); - MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &e.front()); + MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &r.front()); } } #endif // JSGC_HASH_TABLE_CHECKS
--- a/js/src/vm/Shape.cpp +++ b/js/src/vm/Shape.cpp @@ -1283,22 +1283,22 @@ BaseShape::canSkipMarkingShapeTable(Shap #ifdef JSGC_HASH_TABLE_CHECKS void Zone::checkBaseShapeTableAfterMovingGC() { if (!baseShapes().initialized()) return; - for (BaseShapeSet::Enum e(baseShapes()); !e.empty(); e.popFront()) { - UnownedBaseShape* base = e.front().unbarrieredGet(); + for (auto r = baseShapes().all(); !r.empty(); r.popFront()) { + UnownedBaseShape* base = r.front().unbarrieredGet(); CheckGCThingAfterMovingGC(base); BaseShapeSet::Ptr ptr = baseShapes().lookup(base); - MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &e.front()); + MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &r.front()); } } #endif // JSGC_HASH_TABLE_CHECKS void BaseShape::finalize(FreeOp* fop) { @@ -1344,33 +1344,33 @@ Zone::checkInitialShapesTableAfterMoving if (!initialShapes().initialized()) return; /* * Assert that the postbarriers have worked and that nothing is left in * initialShapes that points into the nursery, and that the hash table * entries are discoverable. */ - for (InitialShapeSet::Enum e(initialShapes()); !e.empty(); e.popFront()) { - InitialShapeEntry entry = e.front(); + for (auto r = initialShapes().all(); !r.empty(); r.popFront()) { + InitialShapeEntry entry = r.front(); JSProtoKey protoKey = entry.proto.key(); TaggedProto proto = entry.proto.proto().unbarrieredGet(); Shape* shape = entry.shape.unbarrieredGet(); CheckGCThingAfterMovingGC(shape); if (proto.isObject()) CheckGCThingAfterMovingGC(proto.toObject()); using Lookup = InitialShapeEntry::Lookup; Lookup lookup(shape->getObjectClass(), Lookup::ShapeProto(protoKey, proto), shape->numFixedSlots(), shape->getObjectFlags()); InitialShapeSet::Ptr ptr = initialShapes().lookup(lookup); - MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &e.front()); + MOZ_RELEASE_ASSERT(ptr.found() && &*ptr == &r.front()); } } #endif // JSGC_HASH_TABLE_CHECKS Shape* EmptyShape::new_(JSContext* cx, Handle<UnownedBaseShape*> base, uint32_t nfixed) {