< prev index next >

src/hotspot/share/prims/jvmtiTagMap.cpp

Print this page




2879     oop pd = ik->protection_domain();
2880     if (pd != NULL) {
2881       if (!CallbackInvoker::report_protection_domain_reference(mirror, pd)) {
2882         return false;
2883       }
2884     }
2885 
2886     // signers
2887     oop signers = ik->signers();
2888     if (signers != NULL) {
2889       if (!CallbackInvoker::report_signers_reference(mirror, signers)) {
2890         return false;
2891       }
2892     }
2893 
2894     // references from the constant pool
2895     {
2896       ConstantPool* pool = ik->constants();
2897       for (int i = 1; i < pool->length(); i++) {
2898         constantTag tag = pool->tag_at(i).value();
2899         if (tag.is_string() || tag.is_klass() || tag.is_value_type()) {
2900           oop entry;
2901           if (tag.is_string()) {
2902             entry = pool->resolved_string_at(i);
2903             // If the entry is non-null it is resolved.
2904             if (entry == NULL) continue;
2905           } else {
2906             entry = pool->resolved_klass_at(i)->java_mirror();
2907           }
2908           if (!CallbackInvoker::report_constant_pool_reference(mirror, entry, (jint)i)) {
2909             return false;
2910           }
2911         }
2912       }
2913     }
2914 
2915     // interfaces
2916     // (These will already have been reported as references from the constant pool
2917     //  but are specified by IterateOverReachableObjects and must be reported).
2918     Array<Klass*>* interfaces = ik->local_interfaces();
2919     for (i = 0; i < interfaces->length(); i++) {




2879     oop pd = ik->protection_domain();
2880     if (pd != NULL) {
2881       if (!CallbackInvoker::report_protection_domain_reference(mirror, pd)) {
2882         return false;
2883       }
2884     }
2885 
2886     // signers
2887     oop signers = ik->signers();
2888     if (signers != NULL) {
2889       if (!CallbackInvoker::report_signers_reference(mirror, signers)) {
2890         return false;
2891       }
2892     }
2893 
2894     // references from the constant pool
2895     {
2896       ConstantPool* pool = ik->constants();
2897       for (int i = 1; i < pool->length(); i++) {
2898         constantTag tag = pool->tag_at(i).value();
2899         if (tag.is_string() || tag.is_klass()) {
2900           oop entry;
2901           if (tag.is_string()) {
2902             entry = pool->resolved_string_at(i);
2903             // If the entry is non-null it is resolved.
2904             if (entry == NULL) continue;
2905           } else {
2906             entry = pool->resolved_klass_at(i)->java_mirror();
2907           }
2908           if (!CallbackInvoker::report_constant_pool_reference(mirror, entry, (jint)i)) {
2909             return false;
2910           }
2911         }
2912       }
2913     }
2914 
2915     // interfaces
2916     // (These will already have been reported as references from the constant pool
2917     //  but are specified by IterateOverReachableObjects and must be reported).
2918     Array<Klass*>* interfaces = ik->local_interfaces();
2919     for (i = 0; i < interfaces->length(); i++) {


< prev index next >