< prev index next > src/hotspot/share/classfile/stackMapTable.cpp
Print this page
(!_cp->tag_at(class_index).is_klass() &&
!_cp->tag_at(class_index).is_unresolved_klass())) {
_stream->stackmap_format_error("bad class index", THREAD);
return VerificationType::bogus_type();
}
- return VerificationType::reference_type(_cp->klass_name_at(class_index));
+ Symbol* klass_name = _cp->klass_name_at(class_index);
+ if (klass_name->is_Q_signature()) {
+ Symbol* fund_name = klass_name->fundamental_name(THREAD);
+ if (fund_name == nullptr) {
+ _stream->stackmap_format_error("TBD something bad happened", THREAD);
+ return VerificationType::bogus_type();
+ }
+ return VerificationType::inline_type(fund_name);
+ } else {
+ return VerificationType::reference_type(klass_name);
+ }
}
if (tag == ITEM_UninitializedThis) {
if (flags != nullptr) {
*flags |= FLAG_THIS_UNINIT;
}
< prev index next >