On Thu, 9 May 2024 13:51:09 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:
> 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. src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java line 279: > 277: clb.withMethod(invokerName, invokerDesc, ACC_STATIC, config); > 278: } > 279: There's probably not much value in using ACC_FINAL here anyway. We are only using these classes to create static methods, right? I think ACC_INTERFACE would work here too. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1725721069