< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page

167   ~ClassLoaderData();
168 
169   // The CLD are not placed in the Heap, so the Card Table or
170   // the Mod Union Table can't be used to mark when CLD have modified oops.
171   // The CT and MUT bits saves this information for the whole class loader data.
172   void clear_modified_oops()             { _modified_oops = false; }
173  public:
174   void record_modified_oops()            { _modified_oops = true; }
175   bool has_modified_oops()               { return _modified_oops; }
176 
177   oop holder_no_keepalive() const;
178   oop holder() const;
179 
180  private:
181   void unload();
182   bool keep_alive() const       { return _keep_alive > 0; }
183 
184   void classes_do(void f(Klass* const));
185   void loaded_classes_do(KlassClosure* klass_closure);
186   void classes_do(void f(InstanceKlass*));

187   void methods_do(void f(Method*));
188   void modules_do(void f(ModuleEntry*));
189   void packages_do(void f(PackageEntry*));
190 
191   // Deallocate free list during class unloading.
192   void free_deallocate_list();                      // for the classes that are not unloaded
193   void free_deallocate_list_C_heap_structures();    // for the classes that are unloaded
194 
195   Dictionary* create_dictionary();
196 
197   void initialize_name(Handle class_loader);
198 
199  public:
200   // GC interface.
201 
202   // The "claim" is typically used to check if oops_do needs to be applied on
203   // the CLD or not. Most GCs only perform strong marking during the marking phase.
204   enum Claim {
205     _claim_none              = 0,
206     _claim_finalizable       = 2,

167   ~ClassLoaderData();
168 
169   // The CLD are not placed in the Heap, so the Card Table or
170   // the Mod Union Table can't be used to mark when CLD have modified oops.
171   // The CT and MUT bits saves this information for the whole class loader data.
172   void clear_modified_oops()             { _modified_oops = false; }
173  public:
174   void record_modified_oops()            { _modified_oops = true; }
175   bool has_modified_oops()               { return _modified_oops; }
176 
177   oop holder_no_keepalive() const;
178   oop holder() const;
179 
180  private:
181   void unload();
182   bool keep_alive() const       { return _keep_alive > 0; }
183 
184   void classes_do(void f(Klass* const));
185   void loaded_classes_do(KlassClosure* klass_closure);
186   void classes_do(void f(InstanceKlass*));
187   void inline_classes_do(void f(InlineKlass*));
188   void methods_do(void f(Method*));
189   void modules_do(void f(ModuleEntry*));
190   void packages_do(void f(PackageEntry*));
191 
192   // Deallocate free list during class unloading.
193   void free_deallocate_list();                      // for the classes that are not unloaded
194   void free_deallocate_list_C_heap_structures();    // for the classes that are unloaded
195 
196   Dictionary* create_dictionary();
197 
198   void initialize_name(Handle class_loader);
199 
200  public:
201   // GC interface.
202 
203   // The "claim" is typically used to check if oops_do needs to be applied on
204   // the CLD or not. Most GCs only perform strong marking during the marking phase.
205   enum Claim {
206     _claim_none              = 0,
207     _claim_finalizable       = 2,
< prev index next >