equal
deleted
inserted
replaced
1134 Method* m = methods->at(i); |
1134 Method* m = methods->at(i); |
1135 methodHandle target; |
1135 methodHandle target; |
1136 if (m->has_itable_index()) { |
1136 if (m->has_itable_index()) { |
1137 // This search must match the runtime resolution, i.e. selection search for invokeinterface |
1137 // This search must match the runtime resolution, i.e. selection search for invokeinterface |
1138 // to correctly enforce loader constraints for interface method inheritance |
1138 // to correctly enforce loader constraints for interface method inheritance |
1139 LinkResolver::lookup_instance_method_in_klasses(target, _klass, m->name(), m->signature(), CHECK); |
1139 target = LinkResolver::lookup_instance_method_in_klasses(_klass, m->name(), m->signature(), CHECK); |
1140 } |
1140 } |
1141 if (target == NULL || !target->is_public() || target->is_abstract()) { |
1141 if (target == NULL || !target->is_public() || target->is_abstract()) { |
1142 // Entry does not resolve. Leave it empty for AbstractMethodError. |
1142 // Entry does not resolve. Leave it empty for AbstractMethodError. |
1143 if (!(target == NULL) && !target->is_public()) { |
1143 if (!(target == NULL) && !target->is_public()) { |
1144 // Stuff an IllegalAccessError throwing method in there instead. |
1144 // Stuff an IllegalAccessError throwing method in there instead. |