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++) {
|