RESOLVED FIXED 194939
[JSC] SmallStringsStorage is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=194939
Summary [JSC] SmallStringsStorage is unnecessary
Yusuke Suzuki
Reported 2019-02-22 01:33:15 PST
[JSC] SmallStringsStorage is unnecessary
Attachments
Patch (8.33 KB, patch)
2019-02-22 01:54 PST, Yusuke Suzuki
no flags
Patch (8.55 KB, patch)
2019-02-22 02:05 PST, Yusuke Suzuki
no flags
Patch (8.57 KB, patch)
2019-02-22 02:10 PST, Yusuke Suzuki
mark.lam: review+
Yusuke Suzuki
Comment 1 2019-02-22 01:54:23 PST
Yusuke Suzuki
Comment 2 2019-02-22 02:00:33 PST
Comment on attachment 362709 [details] Patch Oops, fixing build issue.
Yusuke Suzuki
Comment 3 2019-02-22 02:05:50 PST
Yusuke Suzuki
Comment 4 2019-02-22 02:10:29 PST
Mark Lam
Comment 5 2019-02-22 09:52:12 PST
Comment on attachment 362711 [details] Patch r=me
Geoffrey Garen
Comment 6 2019-02-22 10:37:51 PST
Comment on attachment 362711 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=362711&action=review > Source/JavaScriptCore/runtime/SmallStrings.h:76 > + void setCanAccessHeap(bool canAccessHeap) { m_canAccessHeap = canAccessHeap; } I would call this isInitialized / setIsInitialized. > Source/JavaScriptCore/runtime/VM.cpp:543 > + smallStrings.setCanAccessHeap(false); Is there code that tries to access the SmallStrings cache inside lastChanceToFinalize? If so, that feels like a bug.
Yusuke Suzuki
Comment 7 2019-02-22 10:52:24 PST
Comment on attachment 362711 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=362711&action=review >> Source/JavaScriptCore/runtime/SmallStrings.h:76 >> + void setCanAccessHeap(bool canAccessHeap) { m_canAccessHeap = canAccessHeap; } > > I would call this isInitialized / setIsInitialized. OK, changed. >> Source/JavaScriptCore/runtime/VM.cpp:543 >> + smallStrings.setCanAccessHeap(false); > > Is there code that tries to access the SmallStrings cache inside lastChanceToFinalize? If so, that feels like a bug. I don't see the actual code is now using it. But I think touching smallStrings after VM Heap is destroyed can be possible. This is because Identifier creation touches vm.smallStrings to get single character AtomicStringImpl. I think it is a possible story that we create Identifier after VM Heap is destroyed, because Identifier seems unrelated to VM GC Heap. So I take safer design here.
Yusuke Suzuki
Comment 8 2019-02-22 11:04:46 PST
Radar WebKit Bug Importer
Comment 9 2019-02-22 11:11:03 PST
Yusuke Suzuki
Comment 10 2019-02-22 11:15:48 PST
Note You need to log in before you can comment on or make changes to this bug.