< prev index next >

src/hotspot/share/classfile/moduleEntry.hpp

Print this page

181   void delete_reads();
182 
183   // Special handling for unnamed module, one per class loader
184   static ModuleEntry* create_unnamed_module(ClassLoaderData* cld);
185   static ModuleEntry* create_boot_unnamed_module(ClassLoaderData* cld);
186   static ModuleEntry* new_unnamed_module_entry(Handle module_handle, ClassLoaderData* cld);
187 
188   void print(outputStream* st = tty);
189   void verify();
190 
191   CDS_ONLY(int shared_path_index() { return _shared_path_index;})
192 
193   JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
194 
195 #if INCLUDE_CDS_JAVA_HEAP
196   void iterate_symbols(MetaspaceClosure* closure);
197   ModuleEntry* allocate_archived_entry() const;
198   void init_as_archived_entry();
199   static ModuleEntry* get_archived_entry(ModuleEntry* orig_entry);
200   bool has_been_archived();
201   static Array<ModuleEntry*>* write_growable_array(GrowableArray<ModuleEntry*>* array);
202   static GrowableArray<ModuleEntry*>* restore_growable_array(Array<ModuleEntry*>* archived_array);
203   void load_from_archive(ClassLoaderData* loader_data);
204   void restore_archived_oops(ClassLoaderData* loader_data);
205   void clear_archived_oops();
206   void update_oops_in_archived_module(int root_oop_index);
207   static void verify_archived_module_entries() PRODUCT_RETURN;
208 #endif
209 };
210 
211 // Iterator interface
212 class ModuleClosure: public StackObj {
213  public:
214   virtual void do_module(ModuleEntry* module) = 0;
215 };
216 
217 
218 // The ModuleEntryTable is a Hashtable containing a list of all modules defined
219 // by a particular class loader.  Each module is represented as a ModuleEntry node.
220 //
221 // Each ModuleEntryTable contains a _javabase_module field which allows for the

181   void delete_reads();
182 
183   // Special handling for unnamed module, one per class loader
184   static ModuleEntry* create_unnamed_module(ClassLoaderData* cld);
185   static ModuleEntry* create_boot_unnamed_module(ClassLoaderData* cld);
186   static ModuleEntry* new_unnamed_module_entry(Handle module_handle, ClassLoaderData* cld);
187 
188   void print(outputStream* st = tty);
189   void verify();
190 
191   CDS_ONLY(int shared_path_index() { return _shared_path_index;})
192 
193   JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
194 
195 #if INCLUDE_CDS_JAVA_HEAP
196   void iterate_symbols(MetaspaceClosure* closure);
197   ModuleEntry* allocate_archived_entry() const;
198   void init_as_archived_entry();
199   static ModuleEntry* get_archived_entry(ModuleEntry* orig_entry);
200   bool has_been_archived();
201   static Array<ModuleEntry*>* write_growable_array(ModuleEntry* module, GrowableArray<ModuleEntry*>* array);
202   static GrowableArray<ModuleEntry*>* restore_growable_array(Array<ModuleEntry*>* archived_array);
203   void load_from_archive(ClassLoaderData* loader_data);
204   void restore_archived_oops(ClassLoaderData* loader_data);
205   void clear_archived_oops();
206   void update_oops_in_archived_module(int root_oop_index);
207   static void verify_archived_module_entries() PRODUCT_RETURN;
208 #endif
209 };
210 
211 // Iterator interface
212 class ModuleClosure: public StackObj {
213  public:
214   virtual void do_module(ModuleEntry* module) = 0;
215 };
216 
217 
218 // The ModuleEntryTable is a Hashtable containing a list of all modules defined
219 // by a particular class loader.  Each module is represented as a ModuleEntry node.
220 //
221 // Each ModuleEntryTable contains a _javabase_module field which allows for the
< prev index next >