On Tue, 30 Jun 2026 14:57:22 GMT, April Ivy <[email protected]> wrote:

>> As noted in https://bugs.openjdk.org/browse/JDK-8386802, `Util.entryList` 
>> and `Util.moduleEntryList` copy their input lists using indexed access. This 
>> is fine for `RandomAccess` lists but can be inefficient for 
>> sequentially-accessed implementations.
>> 
>> This patch keeps the existing indexed path for `RandomAccess` lists and 
>> falls back to iteration otherwise. Regression coverage is added for 
>> non-`RandomAccess` inputs.
>> 
>> Testing:
>> - `make CONF_CHECK=ignore java.base-java images`
>> - `make CONF_CHECK=ignore test-only 
>> TEST="test/jdk/jdk/classfile/UtilTest.java"`
>> - `make CONF_CHECK=ignore test-only TEST="test/jdk/jdk/classfile"`
>> - `make CONF_CHECK=ignore test-only TEST="test/jdk:tier1" 
>> JTREG="VERBOSE=summary"`
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> April Ivy has refreshed the contents of this pull request, and previous 
> commits have been removed. The incremental views will show differences 
> compared to the previous content of the PR. The pull request contains one new 
> commit since the last revision:
> 
>   8386802: ClassFile Util.entryList should consider non-RandomAccess lists

src/java.base/share/classes/jdk/internal/classfile/impl/Util.java line 204:

> 202:         for (var entry : list) {
> 203:             result[i++] = TemporaryConstantPool.INSTANCE.moduleEntry(
> 204:                     
> TemporaryConstantPool.INSTANCE.utf8Entry(entry.name()));

This can just call the [`ConstantPoolBuilder​::moduleEntry​(ModuleDesc)`] 
overload instead, matching `Util::entryList(…)` above:
Suggestion:

            result[i++] = TemporaryConstantPool.INSTANCE.moduleEntry(entry);


[`ConstantPoolBuilder​::moduleEntry​(ModuleDesc)`]: 
https://docs.oracle.com/en/java/javase/26/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#moduleEntry(java.lang.constant.ModuleDesc)

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/31719#discussion_r3499831435

Reply via email to