<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>294615</bug_id>
          
          <creation_ts>2025-06-17 09:11:03 -0700</creation_ts>
          <short_desc>[WTF] Add overloads of WTF::arePointingToEqualData for non-nullable pointer-like types</short_desc>
          <delta_ts>2025-06-17 20:45:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>Safari 18</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2124216</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2025-06-17 09:11:03 -0700</bug_when>
    <thetext>To replace the relatively common idiom of:

```
   foo.ptr() == bar.ptr() || foo.get() == bar.get();
```

used for Ref and UniqueRef that want value semantics, we can add overloads of WTF::arePointingToEqualData that do the right thing.

At some point later, we should consider replacing these uses with types that do the same thing. For instance, for the UniqueRef case,  the upcoming std::indirect would be a good fit - https://en.cppreference.com/w/cpp/memory/indirect.html. For Ref, we would need to make our own &quot;boxed ref&quot; type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2124227</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2025-06-17 09:55:16 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/46857</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2124377</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-06-17 20:43:05 -0700</bug_when>
    <thetext>Committed 296358@main (f7123211c62d): &lt;https://commits.webkit.org/296358@main&gt;

Reviewed commits have been landed. Closing PR #46857 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2124378</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-06-17 20:45:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/153701651&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>