< 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 >