< prev index next >
src/hotspot/share/prims/jvmtiImpl.cpp
Print this page
*** 568,579 ****
if (signature_idx == -1) {
_result = JVMTI_ERROR_INVALID_SLOT;
return false; // Incorrect slot index
}
Symbol* sign_sym = method_oop->constants()->symbol_at(signature_idx);
! const char* signature = (const char *) sign_sym->as_utf8();
! BasicType slot_type = char2type(signature[0]);
switch (slot_type) {
case T_BYTE:
case T_SHORT:
case T_CHAR:
--- 568,578 ----
if (signature_idx == -1) {
_result = JVMTI_ERROR_INVALID_SLOT;
return false; // Incorrect slot index
}
Symbol* sign_sym = method_oop->constants()->symbol_at(signature_idx);
! BasicType slot_type = Signature::basic_type(sign_sym);
switch (slot_type) {
case T_BYTE:
case T_SHORT:
case T_CHAR:
*** 600,609 ****
--- 599,609 ----
Handle obj(cur_thread, JNIHandles::resolve_external_guard(jobj));
NULL_CHECK(obj, (_result = JVMTI_ERROR_INVALID_OBJECT, false));
Klass* ob_k = obj->klass();
NULL_CHECK(ob_k, (_result = JVMTI_ERROR_INVALID_OBJECT, false));
+ const char* signature = (const char *) sign_sym->as_utf8();
if (!is_assignable(signature, ob_k, cur_thread)) {
_result = JVMTI_ERROR_TYPE_MISMATCH;
return false;
}
}
< prev index next >