> This change stores InstanceKlass for interface and abstract classes in the > non-class metaspace, since class metaspace will have limits on number of > classes that can be represented when Lilliput changes go in. Classes that > have no instances created for them don't require compressed class pointers. > The generated LambdaForm classes are also AllStatic, and changing them to > abstract moves them to non-class metaspace too. It's not technically great > to make them abstract and not final but you can't have both. Java classfile > access flags have no way of specifying something like AllStatic. > > Tested with tier1-8.
Coleen Phillimore has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits: - With JDK-8338929 we don't need is_in_class_space(). - Merge branch 'master' into anon - Incorporated a set of Thomas Stuefe's comments. Take out AbstractClass MetaspaceObj::Type. - 8338526: Don't store abstract and interface Klasses in class metaspace ------------- Changes: https://git.openjdk.org/jdk/pull/19157/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19157&range=02 Stats: 79 lines in 19 files changed: 30 ins; 11 del; 38 mod Patch: https://git.openjdk.org/jdk/pull/19157.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/19157/head:pull/19157 PR: https://git.openjdk.org/jdk/pull/19157