RFR: 8262227: Change SystemDictionary::find() to return an InstanceKlass*.
David Holmes
dholmes at openjdk.java.net
Wed Feb 24 23:12:42 UTC 2021
On Wed, 24 Feb 2021 20:14:02 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> Please review this fix for JDK-8262227. This fix changes SystemDictionary::find() to return an InstanceKlass* to reduce InstanceKlass casts, it renames find() to find_instance_klass(), removes its unneeded TRAP parameter, and changes its callers as appropriate.
>>
>> It also changed the get_java_...() methods, in thread.cpp, to take an InstanceKlass* parameter and removed their now unneeded TRAPS parameter.
>>
>> The fix was tested with mach5 tiers 1 and 2 on Linux, Windows, and Mac OS, and tiers 3-5 on Linux x64 (still in progress).
>>
>> Thanks to Coleen and David for their helpful suggestions.
>>
>> Thanks, Harold
>
> src/hotspot/share/runtime/thread.cpp line 3017:
>
>> 3015: InstanceKlass* ik = SystemDictionary::find_instance_klass(vmSymbols::java_lang_VersionProps(),
>> 3016: Handle(), Handle());
>> 3017: JDK_Version::set_java_version(get_java_version(ik));
>
> The various get_java_xxx() functions all seem to do the same thing. I am wondering if they can be combined into a single utility function, so that you can do something like:
>
> JDK_Version::set_runtime_name(get_version_info(ik, vmSymbols::java_version_name(),
> java_version, sizeof(java_version)));
I think the get_java_* set of functions could be streamlined so that you pass in the symbol for the field you need. Also perhaps VersionProps could be a well-known class so we don't have to look it up. But this seems a future RFE. Even the current changes seem a little out-of-scope for this change.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2712
More information about the hotspot-dev
mailing list