mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8216157: Enable inlining of java_lang_Class::is_primitive
Reviewed-by: coleenp, eosterlund, jiangli
This commit is contained in:
parent
bc2275c28e
commit
bf63ee682e
10 changed files with 24 additions and 19 deletions
|
@ -174,6 +174,22 @@ inline bool java_lang_Class::is_instance(oop obj) {
|
|||
return obj != NULL && obj->klass() == SystemDictionary::Class_klass();
|
||||
}
|
||||
|
||||
inline bool java_lang_Class::is_primitive(oop java_class) {
|
||||
// should assert:
|
||||
//assert(java_lang_Class::is_instance(java_class), "must be a Class object");
|
||||
bool is_primitive = (java_class->metadata_field(_klass_offset) == NULL);
|
||||
|
||||
#ifdef ASSERT
|
||||
if (is_primitive) {
|
||||
Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
|
||||
assert(k == NULL || is_java_primitive(ArrayKlass::cast(k)->element_type()),
|
||||
"Should be either the T_VOID primitive or a java primitive");
|
||||
}
|
||||
#endif
|
||||
|
||||
return is_primitive;
|
||||
}
|
||||
|
||||
inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
|
||||
return obj != NULL && is_subclass(obj->klass());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue