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.

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

Commit messages:
 - 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=00
  Issue: https://bugs.openjdk.org/browse/JDK-8338526
  Stats: 71 lines in 17 files changed: 31 ins; 6 del; 34 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

Reply via email to