> This PR suggests introducing an internal class in `java.base` to simplify the > use of some `MethodHandles.Lookup` operations. > > While the utility of the methods might appear to be limited in classes with > many static `VarHandle`/`MethodHandle` variables, it should be noted that the > class files become smaller and simpler. Here are some examples: > > | Class File | Base [Bytes] | Patch > [Byte] | > | --------------------------------| ------------- | ------------ | > | FutureTask.class | 10,255 | > 10,123 | > | AtomicBoolean.class | 5,364 | > 5,134 | > |AtomicMarkableReference.class | 3,890 | 3,660 | > >  > > The new `MethodHandlesInternal.class` file is of size 1,952 bytes. > > In total for `java.base` we have: > > | Build map "jdk" | Size [Bytes] | > | ---------------| ------------- | > | Base | 5,906,457 | > | Patch | 5,905,487 | > | Delta | 940| > > For 60 billion instances, this represents > 50 TB.
Per Minborg 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 five additional commits since the last revision: - Move to new package and add overload - Merge branch 'master' into internal-mh-util - Rename and reformat - Fix copyright headers - Introduce MethodHandlesInternal ------------- Changes: - all: https://git.openjdk.org/jdk/pull/20972/files - new: https://git.openjdk.org/jdk/pull/20972/files/1dee24ab..e2e935b2 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=20972&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20972&range=01-02 Stats: 9768 lines in 215 files changed: 6742 ins; 1600 del; 1426 mod Patch: https://git.openjdk.org/jdk/pull/20972.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/20972/head:pull/20972 PR: https://git.openjdk.org/jdk/pull/20972