equal
deleted
inserted
replaced
2137 } |
2137 } |
2138 *signature_ptr = result; |
2138 *signature_ptr = result; |
2139 } |
2139 } |
2140 if (generic_ptr != NULL) { |
2140 if (generic_ptr != NULL) { |
2141 *generic_ptr = NULL; |
2141 *generic_ptr = NULL; |
2142 if (!isPrimitive && k->oop_is_instance()) { |
2142 if (!isPrimitive && k->is_instance_klass()) { |
2143 Symbol* soo = InstanceKlass::cast(k)->generic_signature(); |
2143 Symbol* soo = InstanceKlass::cast(k)->generic_signature(); |
2144 if (soo != NULL) { |
2144 if (soo != NULL) { |
2145 const char *gen_sig = soo->as_C_string(); |
2145 const char *gen_sig = soo->as_C_string(); |
2146 if (gen_sig != NULL) { |
2146 if (gen_sig != NULL) { |
2147 char* gen_result; |
2147 char* gen_result; |
2186 return JVMTI_ERROR_ABSENT_INFORMATION; |
2186 return JVMTI_ERROR_ABSENT_INFORMATION; |
2187 } |
2187 } |
2188 Klass* k_klass = java_lang_Class::as_Klass(k_mirror); |
2188 Klass* k_klass = java_lang_Class::as_Klass(k_mirror); |
2189 NULL_CHECK(k_klass, JVMTI_ERROR_INVALID_CLASS); |
2189 NULL_CHECK(k_klass, JVMTI_ERROR_INVALID_CLASS); |
2190 |
2190 |
2191 if (!k_klass->oop_is_instance()) { |
2191 if (!k_klass->is_instance_klass()) { |
2192 return JVMTI_ERROR_ABSENT_INFORMATION; |
2192 return JVMTI_ERROR_ABSENT_INFORMATION; |
2193 } |
2193 } |
2194 |
2194 |
2195 Symbol* sfnOop = InstanceKlass::cast(k_klass)->source_file_name(); |
2195 Symbol* sfnOop = InstanceKlass::cast(k_klass)->source_file_name(); |
2196 NULL_CHECK(sfnOop, JVMTI_ERROR_ABSENT_INFORMATION); |
2196 NULL_CHECK(sfnOop, JVMTI_ERROR_ABSENT_INFORMATION); |
2254 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2254 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2255 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) { |
2255 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) { |
2256 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2256 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2257 } |
2257 } |
2258 |
2258 |
2259 if (!k->oop_is_instance()) { |
2259 if (!k->is_instance_klass()) { |
2260 *method_count_ptr = 0; |
2260 *method_count_ptr = 0; |
2261 *methods_ptr = (jmethodID*) jvmtiMalloc(0 * sizeof(jmethodID)); |
2261 *methods_ptr = (jmethodID*) jvmtiMalloc(0 * sizeof(jmethodID)); |
2262 return JVMTI_ERROR_NONE; |
2262 return JVMTI_ERROR_NONE; |
2263 } |
2263 } |
2264 instanceKlassHandle instanceK_h(current_thread, k); |
2264 instanceKlassHandle instanceK_h(current_thread, k); |
2338 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2338 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2339 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) { |
2339 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) { |
2340 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2340 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2341 } |
2341 } |
2342 |
2342 |
2343 if (!k->oop_is_instance()) { |
2343 if (!k->is_instance_klass()) { |
2344 *field_count_ptr = 0; |
2344 *field_count_ptr = 0; |
2345 *fields_ptr = (jfieldID*) jvmtiMalloc(0 * sizeof(jfieldID)); |
2345 *fields_ptr = (jfieldID*) jvmtiMalloc(0 * sizeof(jfieldID)); |
2346 return JVMTI_ERROR_NONE; |
2346 return JVMTI_ERROR_NONE; |
2347 } |
2347 } |
2348 |
2348 |
2392 |
2392 |
2393 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2393 // Return CLASS_NOT_PREPARED error as per JVMTI spec. |
2394 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) |
2394 if (!(k->jvmti_class_status() & (JVMTI_CLASS_STATUS_PREPARED|JVMTI_CLASS_STATUS_ARRAY) )) |
2395 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2395 return JVMTI_ERROR_CLASS_NOT_PREPARED; |
2396 |
2396 |
2397 if (!k->oop_is_instance()) { |
2397 if (!k->is_instance_klass()) { |
2398 *interface_count_ptr = 0; |
2398 *interface_count_ptr = 0; |
2399 *interfaces_ptr = (jclass*) jvmtiMalloc(0 * sizeof(jclass)); |
2399 *interfaces_ptr = (jclass*) jvmtiMalloc(0 * sizeof(jclass)); |
2400 return JVMTI_ERROR_NONE; |
2400 return JVMTI_ERROR_NONE; |
2401 } |
2401 } |
2402 |
2402 |
2526 JvmtiEnv::IsArrayClass(oop k_mirror, jboolean* is_array_class_ptr) { |
2526 JvmtiEnv::IsArrayClass(oop k_mirror, jboolean* is_array_class_ptr) { |
2527 { |
2527 { |
2528 bool result = false; |
2528 bool result = false; |
2529 if (!java_lang_Class::is_primitive(k_mirror)) { |
2529 if (!java_lang_Class::is_primitive(k_mirror)) { |
2530 Klass* k = java_lang_Class::as_Klass(k_mirror); |
2530 Klass* k = java_lang_Class::as_Klass(k_mirror); |
2531 if (k != NULL && k->oop_is_array()) { |
2531 if (k != NULL && k->is_array_klass()) { |
2532 result = true; |
2532 result = true; |
2533 } |
2533 } |
2534 } |
2534 } |
2535 *is_array_class_ptr = result; |
2535 *is_array_class_ptr = result; |
2536 } |
2536 } |
2574 if (java_lang_Class::is_primitive(k_mirror)) { |
2574 if (java_lang_Class::is_primitive(k_mirror)) { |
2575 return JVMTI_ERROR_ABSENT_INFORMATION; |
2575 return JVMTI_ERROR_ABSENT_INFORMATION; |
2576 } |
2576 } |
2577 Klass* k = java_lang_Class::as_Klass(k_mirror); |
2577 Klass* k = java_lang_Class::as_Klass(k_mirror); |
2578 NULL_CHECK(k, JVMTI_ERROR_INVALID_CLASS); |
2578 NULL_CHECK(k, JVMTI_ERROR_INVALID_CLASS); |
2579 if (!k->oop_is_instance()) { |
2579 if (!k->is_instance_klass()) { |
2580 return JVMTI_ERROR_ABSENT_INFORMATION; |
2580 return JVMTI_ERROR_ABSENT_INFORMATION; |
2581 } |
2581 } |
2582 char* sde = InstanceKlass::cast(k)->source_debug_extension(); |
2582 char* sde = InstanceKlass::cast(k)->source_debug_extension(); |
2583 NULL_CHECK(sde, JVMTI_ERROR_ABSENT_INFORMATION); |
2583 NULL_CHECK(sde, JVMTI_ERROR_ABSENT_INFORMATION); |
2584 |
2584 |