Bug 195698 - Remove unneeded --tradeDestructorBlocks option.
Summary: Remove unneeded --tradeDestructorBlocks option.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mark Lam
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-03-13 14:03 PDT by Mark Lam
Modified: 2019-03-13 15:06 PDT (History)
6 users (show)

See Also:


Attachments
proposed patch. (5.01 KB, patch)
2019-03-13 14:28 PDT, Mark Lam
ysuzuki: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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>.