diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:35:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:35:29 +0000 |
commit | 59203c63bb777a3bacec32fb8830fba33540e809 (patch) | |
tree | 58298e711c0ff0575818c30485b44a2f21bf28a0 /js/src/vm/PropMap.cpp | |
parent | Adding upstream version 126.0.1. (diff) | |
download | firefox-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.cpp | 18 |
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 |