We have lots of duplicated boilerplate code when getting an InstanceKlass* or Klass* from JNI parameters.
https://github.com/openjdk/jdk/blob/0aee7bf24d7f2578d3867bcfa25646cb0bd06d9a/src/hotspot/share/prims/jvm.cpp#L1621-L1625
JVM_ENTRY(jobjectArray, JVM_GetRecordComponents(JNIEnv* env, jclass ofClass))
{
Klass* c = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(ofClass));
assert(c->is_instance_klass(), "must be");
InstanceKlass* ik = InstanceKlass::cast(c);
The above three lines can be replaced with a single line:
InstanceKlass* ik = java_lang_Class::as_InstanceKlass(JNIHandles::resolve_non_null(ofClass));
https://github.com/openjdk/jdk/blob/0aee7bf24d7f2578d3867bcfa25646cb0bd06d9a/src/hotspot/share/prims/jvm.cpp#L1621-L1625
JVM_ENTRY(jobjectArray, JVM_GetRecordComponents(JNIEnv* env, jclass ofClass))
{
Klass* c = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(ofClass));
assert(c->is_instance_klass(), "must be");
InstanceKlass* ik = InstanceKlass::cast(c);
The above three lines can be replaced with a single line:
InstanceKlass* ik = java_lang_Class::as_InstanceKlass(JNIHandles::resolve_non_null(ofClass));
- links to
-
Review(master) openjdk/jdk/27158