Summary: | CodeBlock::jettison() should disallow repatching its own calls | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Tadeu Zagallo <tzagallo> | ||||||
Component: | JavaScriptCore | Assignee: | Tadeu Zagallo <tzagallo> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | commit-queue, ews-watchlist, keith_miller, mark.lam, msaboff, saam, webkit-bug-importer | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Tadeu Zagallo
2019-03-28 11:45:23 PDT
Created attachment 366192 [details]
Patch
Comment on attachment 366192 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=366192&action=review > Source/JavaScriptCore/ChangeLog:12 > + OSR exit address while unlinking all the incoming CallLinkInfos latter in latter => later Comment on attachment 366192 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=366192&action=review > Source/JavaScriptCore/ChangeLog:17 > + Change it so that we set a flag, `clearedByJettison`, in all the CallLinkInfos > + owned by the CodeBlock being jettisoned. If the flag is set, we will avoid > + repatching the call during unlinking. It took me a few minutes to agree that this is safe, but maybe it's worth expanding on in a sentence or two. The beginning of this call should never be reachable again after the CodeBlock is jettisoned. Comment on attachment 366192 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=366192&action=review > JSTests/stress/call-link-info-osrexit-repatch.js:3 > +function foo(a, b) { style nit: use 4 space indent Created attachment 366203 [details]
Patch for landing
Comment on attachment 366203 [details] Patch for landing Clearing flags on attachment: 366203 Committed r243626: <https://trac.webkit.org/changeset/243626> All reviewed patches have been landed. Closing bug. |