> 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 with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains eight additional commits since 
the last revision:

 - Merge branch 'master' of https://github.com/openjdk/jdk into 
feature/af-location-accessors
 - Preview notes
 - Further enhance the impl of access flags, make cffv aware to flags easier
 - Merge branch 'master' of https://github.com/openjdk/jdk into 
feature/af-location-accessors
 - Merge branch 'master' of https://github.com/openjdk/jdk into 
feature/af-location-accessors
 - More links
 - ClassLoading order, Typos in NPE test
 - 8347471: Provide valid flags and mask in AccessFlag.Location

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23095/files
  - new: https://git.openjdk.org/jdk/pull/23095/files/7e6d58a1..1019812f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23095&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23095&range=04-05

  Stats: 35133 lines in 1000 files changed: 27235 ins; 5788 del; 2110 mod
  Patch: https://git.openjdk.org/jdk/pull/23095.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23095/head:pull/23095

PR: https://git.openjdk.org/jdk/pull/23095

Reply via email to