equal
deleted
inserted
replaced
801 resolved_klass->is_interface() && !resolved_method->is_abstract(); |
801 resolved_klass->is_interface() && !resolved_method->is_abstract(); |
802 |
802 |
803 if (!direct_calling_default_method && |
803 if (!direct_calling_default_method && |
804 check_access && |
804 check_access && |
805 // a) check if ACC_SUPER flag is set for the current class |
805 // a) check if ACC_SUPER flag is set for the current class |
806 current_klass->is_super() && |
806 (current_klass->is_super() || !AllowNonVirtualCalls) && |
807 // b) check if the method class is a superclass of the current class (superclass relation is not reflexive!) |
807 // b) check if the method class is a superclass of the current class (superclass relation is not reflexive!) |
808 current_klass->is_subtype_of(method_klass()) && |
808 current_klass->is_subtype_of(method_klass()) && |
809 current_klass() != method_klass() && |
809 current_klass() != method_klass() && |
810 // c) check if the method is not <init> |
810 // c) check if the method is not <init> |
811 resolved_method->name() != vmSymbols::object_initializer_name()) { |
811 resolved_method->name() != vmSymbols::object_initializer_name()) { |