summaryrefslogtreecommitdiffstats
path: root/js/src/vm/PropMap.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:35:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:35:29 +0000
commit59203c63bb777a3bacec32fb8830fba33540e809 (patch)
tree58298e711c0ff0575818c30485b44a2f21bf28a0 /js/src/vm/PropMap.cpp
parentAdding upstream version 126.0.1. (diff)
downloadfirefox-59203c63bb777a3bacec32fb8830fba33540e809.tar.xz
firefox-59203c63bb777a3bacec32fb8830fba33540e809.zip
Adding upstream version 127.0.upstream/127.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/vm/PropMap.cpp')
-rw-r--r--js/src/vm/PropMap.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/js/src/vm/PropMap.cpp b/js/src/vm/PropMap.cpp
index 8c1acaeea8..9fd6fbe3eb 100644
--- a/js/src/vm/PropMap.cpp
+++ b/js/src/vm/PropMap.cpp
@@ -966,18 +966,20 @@ void PropMapTable::trace(JSTracer* trc) {
}
#ifdef JSGC_HASH_TABLE_CHECKS
-void PropMapTable::checkAfterMovingGC() {
- for (Set::Enum e(set_); !e.empty(); e.popFront()) {
- PropMap* map = e.front().map();
+void PropMapTable::checkAfterMovingGC(JS::Zone* zone) {
+ CheckTableAfterMovingGC(set_, [zone](const auto& entry) {
+ PropMap* map = entry.map();
MOZ_ASSERT(map);
- CheckGCThingAfterMovingGC(map);
+ CheckGCThingAfterMovingGC(map, zone);
- PropertyKey key = map->getKey(e.front().index());
+ PropertyKey key = map->getKey(entry.index());
MOZ_RELEASE_ASSERT(!key.isVoid());
+ if (key.isGCThing()) {
+ CheckGCThingAfterMovingGC(key.toGCThing(), zone);
+ }
- auto p = lookupRaw(key);
- MOZ_RELEASE_ASSERT(p.found() && *p == e.front());
- }
+ return key;
+ });
}
#endif