On Tue, 27 Aug 2024 17:27:19 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.
>
> 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

Looks OK to me.

Maybe we should add an assert in `CompressedKlassPointers::encode_not_null()` 
to check that we never encode abstract and interface classes?

src/hotspot/share/oops/metadata.hpp line 2:

> 1: /*
> 2:  * Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights 
> reserved.

No more change in this file?

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

PR Review: https://git.openjdk.org/jdk/pull/19157#pullrequestreview-2265222694
PR Review Comment: https://git.openjdk.org/jdk/pull/19157#discussion_r1734036194

Reply via email to