[webkit-changes] [WebKit/WebKit] 55fce2: [JSC][32bit] HashTable's deletedValue conflict wit...
Mikhail R. Gadelha
noreply at github.com
Mon Oct 10 00:01:51 PDT 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 55fce2d2fa0fc5c39d9f7d198eb3ff91cbd03c3b
https://github.com/WebKit/WebKit/commit/55fce2d2fa0fc5c39d9f7d198eb3ff91cbd03c3b
Author: Mikhail R. Gadelha <mikhail at igalia.com>
Date: 2022-10-10 (Mon, 10 Oct 2022)
Changed paths:
A JSTests/stress/hash-deleted-value-cell-32.js
M Source/JavaScriptCore/heap/HeapUtil.h
Log Message:
-----------
[JSC][32bit] HashTable's deletedValue conflict with cell payload
https://bugs.webkit.org/show_bug.cgi?id=246179
Reviewed by Darin Adler.
When processing callees in the sampling profiler a cell payload can be
0xFFFFFFFF, which becomes -1 in 32bit systems, causing an assertion to fail in
HashTable::checkKey when it compares the key to its default deletedValue (-1),
but only when JSC is built with asserts enabled.
This patch adds a guard to prevent checking the assertion if the cell is equal
to the deletedValue by checking if the cell is a valid set value. It's only
enabled in 32bit builds when asserts are enabled.
* JSTests/stress/hash-deleted-value-cell-32.js: Added.
(__getProperties):
(__getRandomProperty):
(startSamplingProfiler.__v_45.shouldThrow):
(i.try.__v_45.shouldThrow):
* Source/JavaScriptCore/heap/HeapUtil.h:
(JSC::HeapUtil::isPointerGCObjectJSCell):
Canonical link: https://commits.webkit.org/255332@main
More information about the webkit-changes
mailing list