hotspot/src/share/vm/oops/klassVtable.hpp
changeset 39714 976b97b59d87
parent 35898 ddc274f0052f
child 40633 c33ad2ff51de
equal deleted inserted replaced
39713:29ece76096cb 39714:976b97b59d87
   151       Array<Method*>* class_methods,
   151       Array<Method*>* class_methods,
   152       Array<Method*>* default_methods,
   152       Array<Method*>* default_methods,
   153       Array<Klass*>* local_interfaces);
   153       Array<Klass*>* local_interfaces);
   154   void verify_against(outputStream* st, klassVtable* vt, int index);
   154   void verify_against(outputStream* st, klassVtable* vt, int index);
   155   inline InstanceKlass* ik() const;
   155   inline InstanceKlass* ik() const;
       
   156   // When loading a class from CDS archive at run time, and no class redefintion
       
   157   // has happened, it is expected that the class's itable/vtables are
       
   158   // laid out exactly the same way as they had been during dump time.
       
   159   // Therefore, in klassVtable::initialize_[iv]table, we do not layout the
       
   160   // tables again. Instead, we only rerun the process to create/check
       
   161   // the class loader constraints. In non-product builds, we add asserts to
       
   162   // guarantee that the table's layout would be the same as at dump time.
       
   163   //
       
   164   // If JVMTI redefines any class, the read-only shared memory are remapped
       
   165   // as read-write. A shared class' vtable/itable are re-initialized and
       
   166   // might have different layout due to class redefinition of the shared class
       
   167   // or its super types.
       
   168   bool is_preinitialized_vtable();
   156 };
   169 };
   157 
   170 
   158 
   171 
   159 // private helper class for klassVtable
   172 // private helper class for klassVtable
   160 // description of entry points:
   173 // description of entry points: