<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <font size="4" face="monospace">StableValue is coming soon, and the
      attributes is a great candidate for a lazy StableValue map.  </font><br>
    <br>
    <div class="moz-cite-prefix">On 4/30/2024 7:58 AM, Adam Sotona
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:DS0PR10MB684757481ED15D5A8097E1E98C1A2@DS0PR10MB6847.namprd10.prod.outlook.com">
      
      <meta name="Generator" content="Microsoft Word 15 (filtered medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Aptos",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style>
      <div class="WordSection1">
        <div id="mail-editor-reference-message-container">
          <div>
            <div>
              <p class="MsoNormal"><span style="font-size:11.0pt">Hi,<br>
                  During performance optimization work on Class-File API
                  as JDK lambda generator we found some static
                  initialization killers.<br>
                  One of them is `java.lang.classfile.Attributes` with
                  tens of static fields initialized with individual
                  attribute mappers, and common set of all mappers, and
                  static map from attribute names to the mappers.<br>
                  <br>
                  I propose to turn all the static fields into
                  lazy-initialized static methods and remove
                  `PREDEFINED_ATTRIBUTES` and
                  `standardAttribute(Utf8Entry name)` static mapping
                  method from the `Attributes` API class.<br>
                   <br>
                  Please let me know your comments or objections and
                  please review the
                  [PR](<a class="moz-txt-link-freetext" href="https://github.com/openjdk/jdk/pull/19006">https://github.com/openjdk/jdk/pull/19006</a>) and
                  [CSR](<a class="moz-txt-link-freetext" href="https://bugs.openjdk.org/browse/JDK-8331414">https://bugs.openjdk.org/browse/JDK-8331414</a>), so
                  we can make it into 23.<br>
                  <br>
                  Thank you,<br>
                  Adam<br>
                  <br>
                  -------------<br>
                  <br>
                  Commit messages:<br>
                   - added impl comment<br>
                   - removed list of predefined attributes<br>
                   - move mappers implementations to
                  AbstractAttributeMapper<br>
                   - 8331291: java.lang.classfile.Attributes class
                  performs a lot of static initializations<br>
                  <br>
                  Changes: <a href="https://git.openjdk.org/jdk/pull/19006/files" moz-do-not-send="true" class="moz-txt-link-freetext">https://git.openjdk.org/jdk/pull/19006/files</a><br>
                    Webrev: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=19006&range=00" moz-do-not-send="true">https://webrevs.openjdk.org/?repo=jdk&pr=19006&range=00</a><br>
                    Issue: <a href="https://bugs.openjdk.org/browse/JDK-8331291" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8331291</a><o:p></o:p></span></p>
              <p class="MsoNormal"><span style="font-size:11.0pt"> CSR:
                </span><span style="font-size:11.0pt"><a href="https://bugs.openjdk.org/browse/JDK-8331414" moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8331414</a><br>
                    Stats: 2029 lines in 47 files changed: 904 ins; 619
                  del; 506 mod<br>
                    Patch: <a href="https://git.openjdk.org/jdk/pull/19006.diff" moz-do-not-send="true" class="moz-txt-link-freetext">https://git.openjdk.org/jdk/pull/19006.diff</a><br>
                    Fetch: git fetch <a href="https://git.openjdk.org/jdk.git" moz-do-not-send="true" class="moz-txt-link-freetext">https://git.openjdk.org/jdk.git</a>
                  pull/19006/head:pull/19006<br>
                  <br>
                  PR: <a href="https://git.openjdk.org/jdk/pull/19006" moz-do-not-send="true" class="moz-txt-link-freetext">https://git.openjdk.org/jdk/pull/19006</a></span><span style="font-size:11.0pt"><o:p></o:p></span></p>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>