< prev index next >
src/hotspot/share/prims/jvmtiImpl.cpp
Print this page
@@ -568,12 +568,11 @@
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]);
+ BasicType slot_type = Signature::basic_type(sign_sym);
switch (slot_type) {
case T_BYTE:
case T_SHORT:
case T_CHAR:
@@ -600,10 +599,11 @@
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 >