Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6fb73d00567745370a0757483e620a9e11976cab
      
https://github.com/WebKit/WebKit/commit/6fb73d00567745370a0757483e620a9e11976cab
  Author: Keith Miller <[email protected]>
  Date:   2025-02-04 (Tue, 04 Feb 2025)

  Changed paths:
    M Source/WTF/wtf/TaggedPtr.h

  Log Message:
  -----------
  Clean up TaggedPtr
https://bugs.webkit.org/show_bug.cgi?id=287018
rdar://144160928

Reviewed by Yusuke Suzuki.

Relying on ARM64's top byte ignore and leaking those bits is problematic since 
people might try to do
pointer equality comparisions on the pointer returned by TaggedPtr or more 
perniciously by doing
`taggedPtr->foo()` and `foo` doing pointer comparisons. I think LLVM should be 
able to notice when
it can use TBI to skip stripping the tag (rdar://144164498).

I also added a concept to document the API for TaggedPtr's TaggingTraits and 
renamed things to
better match RefPtr's PtrTraits.

* Source/WTF/wtf/TaggedPtr.h:
(WTF::requires):
(WTF::TaggedPtr::TaggedPtr):
(WTF::TaggedPtr::tag const):
(WTF::TaggedPtr::ptr const):
(WTF::TaggedPtr::ptr):
(WTF::TaggedPtr::set):
(WTF::TaggedPtr::setTag):
(WTF::TaggedPtr::operator=):
(WTF::TaggedPtr::operator-> const):
(WTF::TaggedPtr::operator->):
(WTF::static_cast<Enum>):
(WTF::NoTaggingTraits::wrap):
(WTF::NoTaggingTraits::unwrapPtr):
(WTF::NoTaggingTraits::unwrapTag):
(WTF::NoTaggingTraits::encode): Deleted.
(WTF::NoTaggingTraits::extractPtr): Deleted.
(WTF::NoTaggingTraits::extractTag): Deleted.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to