< prev index next >

src/hotspot/share/oops/klassVtable.cpp

Print this page
*** 1228,14 ***
    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;
--- 1228,14 ---
    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 >