< prev index next >

src/share/vm/classfile/dictionary.hpp

Print this page
rev 9056 : 8185525: Add JFR event for DictionarySizes
Summary: Added TableStatistics event
Reviewed-by: egahlin, coleenp


 112     return (loader_data->is_the_null_class_loader_data() || !ClassUnloading);
 113   }
 114 
 115   // Unload (that is, break root links to) all unmarked classes and loaders.
 116   void do_unloading();
 117 
 118   // Protection domains
 119   Klass* find(int index, unsigned int hash, Symbol* name,
 120                 ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 121   bool is_valid_protection_domain(int index, unsigned int hash,
 122                                   Symbol* name, ClassLoaderData* loader_data,
 123                                   Handle protection_domain);
 124   void add_protection_domain(int index, unsigned int hash,
 125                              instanceKlassHandle klass, ClassLoaderData* loader_data,
 126                              Handle protection_domain, TRAPS);
 127 
 128   // Sharing support
 129   void reorder_dictionary();
 130 
 131   ProtectionDomainCacheEntry* cache_get(oop protection_domain);

 132 
 133   void print(bool details = true);
 134   void verify();
 135 };
 136 
 137 // The following classes can be in dictionary.cpp, but we need these
 138 // to be in header file so that SA's vmStructs can access them.
 139 class ProtectionDomainCacheEntry : public HashtableEntry<oop, mtClass> {
 140   friend class VMStructs;
 141  private:
 142   // Flag indicating whether this protection domain entry is strongly reachable.
 143   // Used during iterating over the system dictionary to remember oops that need
 144   // to be updated.
 145   bool _strongly_reachable;
 146  public:
 147   oop protection_domain() { return literal(); }
 148 
 149   void init() {
 150     _strongly_reachable = false;
 151   }




 112     return (loader_data->is_the_null_class_loader_data() || !ClassUnloading);
 113   }
 114 
 115   // Unload (that is, break root links to) all unmarked classes and loaders.
 116   void do_unloading();
 117 
 118   // Protection domains
 119   Klass* find(int index, unsigned int hash, Symbol* name,
 120                 ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 121   bool is_valid_protection_domain(int index, unsigned int hash,
 122                                   Symbol* name, ClassLoaderData* loader_data,
 123                                   Handle protection_domain);
 124   void add_protection_domain(int index, unsigned int hash,
 125                              instanceKlassHandle klass, ClassLoaderData* loader_data,
 126                              Handle protection_domain, TRAPS);
 127 
 128   // Sharing support
 129   void reorder_dictionary();
 130 
 131   ProtectionDomainCacheEntry* cache_get(oop protection_domain);
 132   ProtectionDomainCacheTable* pd_cache_table() { return _pd_cache_table; }
 133 
 134   void print(bool details = true);
 135   void verify();
 136 };
 137 
 138 // The following classes can be in dictionary.cpp, but we need these
 139 // to be in header file so that SA's vmStructs can access them.
 140 class ProtectionDomainCacheEntry : public HashtableEntry<oop, mtClass> {
 141   friend class VMStructs;
 142  private:
 143   // Flag indicating whether this protection domain entry is strongly reachable.
 144   // Used during iterating over the system dictionary to remember oops that need
 145   // to be updated.
 146   bool _strongly_reachable;
 147  public:
 148   oop protection_domain() { return literal(); }
 149 
 150   void init() {
 151     _strongly_reachable = false;
 152   }


< prev index next >