Bug 195698

Summary: Remove unneeded --tradeDestructorBlocks option.
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: ews-watchlist, keith_miller, msaboff, saam, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed patch. ysuzuki: review+

Description Mark Lam 2019-03-13 14:03:44 PDT
There's no reason why we would ever want --tradeDestructorBlocs to be false.

<rdar://problem/39681388>
Comment 1 Mark Lam 2019-03-13 14:28:20 PDT
Created attachment 364572 [details]
proposed patch.
Comment 2 Yusuke Suzuki 2019-03-13 14:47:15 PDT
Comment on attachment 364572 [details]
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=364572&action=review

r=me

> Source/JavaScriptCore/ChangeLog:16
> +        (!Options::tradeDestructorBlocks() && needsDestruction()).  This assertion is
> +        outdated because the BlockDirectory's m_empty set used to mean the set of all
> +        blocks that have no live (as in not reachable by GC) objects and dead objects
> +        also do not require destructors to be called on them.  The current meaning of
> +        m_empty is that it is the set of all blocks that have no live objects,

OK, now, it is separated as "m_destructible".

> Source/JavaScriptCore/heap/LocalAllocator.cpp:190
>              

OK, it is always calling `block->sweep(nullptr)`. So we can get blocks even if m_directory is destructible (trade-destructor-blocks).
Comment 3 Mark Lam 2019-03-13 15:06:09 PDT
Thanks for the review.  Landed in r242912: <http://trac.webkit.org/r242912>.