2628 *interface_count_ptr = 0; |
2628 *interface_count_ptr = 0; |
2629 *interfaces_ptr = (jclass*) jvmtiMalloc(0 * sizeof(jclass)); |
2629 *interfaces_ptr = (jclass*) jvmtiMalloc(0 * sizeof(jclass)); |
2630 return JVMTI_ERROR_NONE; |
2630 return JVMTI_ERROR_NONE; |
2631 } |
2631 } |
2632 |
2632 |
2633 Array<Klass*>* interface_list = InstanceKlass::cast(k)->local_interfaces(); |
2633 Array<InstanceKlass*>* interface_list = InstanceKlass::cast(k)->local_interfaces(); |
2634 const int result_length = (interface_list == NULL ? 0 : interface_list->length()); |
2634 const int result_length = (interface_list == NULL ? 0 : interface_list->length()); |
2635 jclass* result_list = (jclass*) jvmtiMalloc(result_length * sizeof(jclass)); |
2635 jclass* result_list = (jclass*) jvmtiMalloc(result_length * sizeof(jclass)); |
2636 for (int i_index = 0; i_index < result_length; i_index += 1) { |
2636 for (int i_index = 0; i_index < result_length; i_index += 1) { |
2637 Klass* klass_at = interface_list->at(i_index); |
2637 InstanceKlass* klass_at = interface_list->at(i_index); |
2638 assert(klass_at->is_klass(), "interfaces must be Klass*s"); |
2638 assert(klass_at->is_klass(), "interfaces must be Klass*s"); |
2639 assert(klass_at->is_interface(), "interfaces must be interfaces"); |
2639 assert(klass_at->is_interface(), "interfaces must be interfaces"); |
2640 oop mirror_at = klass_at->java_mirror(); |
2640 oop mirror_at = klass_at->java_mirror(); |
2641 Handle handle_at = Handle(current_thread, mirror_at); |
2641 Handle handle_at = Handle(current_thread, mirror_at); |
2642 result_list[i_index] = (jclass) jni_reference(handle_at); |
2642 result_list[i_index] = (jclass) jni_reference(handle_at); |