RFR: 8336275: Move common Method and Constructor fields to Executable [v3]

Coleen Phillimore coleenp at openjdk.org
Wed Aug 21 16:44:08 UTC 2024


On Wed, 21 Aug 2024 15:42:18 GMT, Chen Liang <liach at openjdk.org> wrote:

>> Move fields common to Method and Field to executable, which simplifies implementation. Removed useless transient modifiers as Method and Field were never serializable.
>> 
>> Note to core-libs reviewers: Please review the associated CSR on trivial removal of `abstract` modifier as well.
>
> Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
> 
>  - Fix after merge
>  - Merge branch 'master' of https://github.com/openjdk/jdk into feature/executable-inline
>  - Merge branch 'master' of https://github.com/openjdk/jdk into feature/executable-inline
>  - Redundant transient; Update the comments to be more accurate
>  - Inline some common ctor + method fields to executable

src/hotspot/share/classfile/javaClasses.cpp line 3308:

> 3306:   macro(_name_offset,           k, vmSymbols::name_name(),           string_signature,      false); \
> 3307:   macro(_returnType_offset,     k, vmSymbols::returnType_name(),     class_signature,       false); \
> 3308:   macro(_annotation_default_offset,    k, vmSymbols::annotation_default_name(),    byte_array_signature, false);

Can you re-align these since you modified them?

src/hotspot/share/classfile/javaClasses.cpp line 3323:

> 3321: Handle java_lang_reflect_Method::create(TRAPS) {
> 3322:   assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
> 3323:   Klass* klass = vmClasses::reflect_Method_klass();

This also does not need a cast, vmClasses::reflect_Method_klass() returns an InstanceKlass.

src/hotspot/share/classfile/javaClasses.cpp line 3351:

> 3349:   assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem");
> 3350:   Klass* k = vmClasses::reflect_Constructor_klass();
> 3351:   InstanceKlass* ik = InstanceKlass::cast(k);

This doesn't need a cast because vmClasses returns InstanceKlass.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20188#discussion_r1725402105
PR Review Comment: https://git.openjdk.org/jdk/pull/20188#discussion_r1725403135
PR Review Comment: https://git.openjdk.org/jdk/pull/20188#discussion_r1725399269


More information about the core-libs-dev mailing list