RFR: 8347471: Provide valid flags and mask in AccessFlag.Location [v4]
Chen Liang
liach at openjdk.org
Fri Apr 18 18:22:50 UTC 2025
On Fri, 18 Apr 2025 17:39:05 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Some AccessFlag parsing methods throw IAE because a flag mask is not valid in a location. However, there is no easy way to check what flag mask bits or what flags are valid for a location. We need such APIs to check, specific to each class file format version.
>>
>> Also in the investigation, it's noted that `ACC_SYNTHETIC` is incorrectly represented - it is available since release 5.0 instead of release 7. This bug is fixed together for implementation simplicity.
>>
>> The new methods are all in `AccessFlag.Location`:
>> - `Set<AccessFlag> flags()`
>> - `int flagsMask()`
>> - `Set<AccessFlag> flags(ClassFileFormatVersion)`
>> - `int flagsMask(ClassFileFormatVersion)`
>>
>> Also there is some simplification to `AccessFlag` itself to remove the anonymous classes, which should be more startup-friendly.
>>
>> Testing: Tier 1-3
>
> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
>
> Further enhance the impl of access flags, make cffv aware to flags easier
Weeks after weeks, this is not coming like project valhalla itself... This was opened in the beginning of a release cycle, yet no one reviewed; will this get deferred forever?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23095#issuecomment-2815970610
More information about the core-libs-dev
mailing list