< prev index next >
src/hotspot/share/classfile/stackMapTable.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 186,196 ****
(!_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));
}
if (tag == ITEM_UninitializedThis) {
if (flags != NULL) {
*flags |= FLAG_THIS_UNINIT;
}
--- 186,206 ----
(!_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();
}
! 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 == NULL) {
! _stream->stackmap_format_error("TBD something bad happened", THREAD);
! return VerificationType::bogus_type();
! }
! return VerificationType::valuetype_type(fund_name);
! } else {
! return VerificationType::reference_type(klass_name);
! }
}
if (tag == ITEM_UninitializedThis) {
if (flags != NULL) {
*flags |= FLAG_THIS_UNINIT;
}
< prev index next >