Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 904ba517118749e7b0e97ded812b7b64d8b7d534
      
https://github.com/WebKit/WebKit/commit/904ba517118749e7b0e97ded812b7b64d8b7d534
  Author: Sosuke Suzuki <[email protected]>
  Date:   2026-07-13 (Mon, 13 Jul 2026)

  Changed paths:
    M Source/JavaScriptCore/heap/Handle.h
    M Source/JavaScriptCore/heap/Strong.h

  Log Message:
  -----------
  [JSC] `Strong<T>` should be pointer-sized
https://bugs.webkit.org/show_bug.cgi?id=319210

Reviewed by Yusuke Suzuki.

284791@main added `virtual ~Handle() = default;` while introducing
StrongRefTracker, doubling sizeof(Strong<T>) from 8 to 16 bytes everywhere.
Strong<T> is final and the only subclass of Handle<T>, and nothing deletes
through a Handle<T>*, so the virtual destructor is unnecessary.

RefTracker does not rely on it either: the Vector interaction is handled by
the ENABLE(REFTRACKER)-guarded VectorTraits flags added in the same commit.

Verified on a Debug build that JSC_enableStrongRefTracker=1 still works,
including through Vector<Strong<JSPromise>> reallocations.

Also add a static_assert so Strong<T> stays pointer-sized.

* Source/JavaScriptCore/heap/Handle.h:
* Source/JavaScriptCore/heap/Strong.h:

Canonical link: https://commits.webkit.org/317117@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to