<?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>265721</bug_id>
          
          <creation_ts>2023-12-02 10:30:18 -0800</creation_ts>
          <short_desc>[Wasm-GC] Typedef unrolling cache should hold values strongly</short_desc>
          <delta_ts>2023-12-13 19:14:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebAssembly</component>
          <version>WebKit Nightly Build</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>
          
          <blocked>247394</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Asumu Takikawa">asumu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1996459</commentid>
    <comment_count>0</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2023-12-02 10:30:18 -0800</bug_when>
    <thetext>There is a cache used for unrolling rec/sub types, to avoid re-computing this constantly. The cache holds keys weakly (when the key is collected, it should be explicitly removed from the cache map) but it should hold values strongly to avoid deallocation. Right now the values are also held weakly.

Changing this to use a `RefPtr` instead fixes some crashes related to this. It&apos;s been difficult to construct a example to reproduce the issue, but it comes up in real programs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1998332</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-12-09 10:31:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/119435998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999291</commentid>
    <comment_count>2</comment_count>
    <who name="Asumu Takikawa">asumu</who>
    <bug_when>2023-12-13 09:32:30 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/21739</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1999469</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-13 19:14:56 -0800</bug_when>
    <thetext>Committed 272016@main (456ffae07aa8): &lt;https://commits.webkit.org/272016@main&gt;

Reviewed commits have been landed. Closing PR #21739 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>