hotspot/src/share/vm/interpreter/linkResolver.cpp
changeset 15920 b6a92b294176
parent 15430 7c35f12cf1e5
parent 15919 15a548ffc099
child 15922 86a368d3ac8c
equal deleted inserted replaced
15572:d17eb2e13e36 15920:b6a92b294176
   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()) {