< prev index next > src/hotspot/share/oops/klassVtable.cpp
Print this page
initialize_itable(supers);
check_constraints(supers, CHECK);
}
inline bool interface_method_needs_itable_index(Method* m) {
! if (m->is_static()) return false; // e.g., Stream.empty
! if (m->is_object_initializer()) return false; // <init>
! if (m->is_static_initializer()) return false; // <clinit>
! if (m->is_private()) return false; // uses direct call
// If an interface redeclares a method from java.lang.Object,
// it should already have a vtable index, don't touch it.
// e.g., CharSequence.toString (from initialize_vtable)
// if (m->has_vtable_index()) return false; // NO!
return true;
initialize_itable(supers);
check_constraints(supers, CHECK);
}
inline bool interface_method_needs_itable_index(Method* m) {
! if (m->is_static()) return false; // e.g., Stream.empty
! if (m->is_private()) return false; // uses direct call
! if (m->is_object_constructor()) return false; // <init>(...)V
! if (m->is_class_initializer()) return false; // <clinit>()V
// If an interface redeclares a method from java.lang.Object,
// it should already have a vtable index, don't touch it.
// e.g., CharSequence.toString (from initialize_vtable)
// if (m->has_vtable_index()) return false; // NO!
return true;
< prev index next >