< prev index next >

src/hotspot/share/memory/metaspace.hpp

Print this page




 212                                    MetaspaceObj::Type type, MetadataType mdtype, TRAPS);
 213 
 214   static const char* metadata_type_name(Metaspace::MetadataType mdtype);
 215 
 216   static void print_compressed_class_space(outputStream* st, const char* requested_addr = 0) NOT_LP64({});
 217 
 218   // Return TRUE only if UseCompressedClassPointers is True.
 219   static bool using_class_space() {
 220     return NOT_LP64(false) LP64_ONLY(UseCompressedClassPointers);
 221   }
 222 
 223   static bool is_class_space_allocation(MetadataType mdType) {
 224     return mdType == ClassType && using_class_space();
 225   }
 226 
 227 };
 228 
 229 // Manages the metaspace portion belonging to a class loader
 230 class ClassLoaderMetaspace : public CHeapObj<mtClass> {
 231   friend class CollectedHeap; // For expand_and_allocate()

 232   friend class Metaspace;
 233   friend class MetaspaceUtils;
 234   friend class metaspace::PrintCLDMetaspaceInfoClosure;
 235   friend class VM_CollectForMetadataAllocation; // For expand_and_allocate()
 236 
 237  private:
 238 
 239   void initialize(Mutex* lock, Metaspace::MetaspaceType type);
 240 
 241   // Initialize the first chunk for a Metaspace.  Used for
 242   // special cases such as the boot class loader, reflection
 243   // class loader and anonymous class loader.
 244   void initialize_first_chunk(Metaspace::MetaspaceType type, Metaspace::MetadataType mdtype);
 245   metaspace::Metachunk* get_initialization_chunk(Metaspace::MetaspaceType type, Metaspace::MetadataType mdtype);
 246 
 247   const Metaspace::MetaspaceType _space_type;
 248   Mutex* const  _lock;
 249   metaspace::SpaceManager* _vsm;
 250   metaspace::SpaceManager* _class_vsm;
 251 




 212                                    MetaspaceObj::Type type, MetadataType mdtype, TRAPS);
 213 
 214   static const char* metadata_type_name(Metaspace::MetadataType mdtype);
 215 
 216   static void print_compressed_class_space(outputStream* st, const char* requested_addr = 0) NOT_LP64({});
 217 
 218   // Return TRUE only if UseCompressedClassPointers is True.
 219   static bool using_class_space() {
 220     return NOT_LP64(false) LP64_ONLY(UseCompressedClassPointers);
 221   }
 222 
 223   static bool is_class_space_allocation(MetadataType mdType) {
 224     return mdType == ClassType && using_class_space();
 225   }
 226 
 227 };
 228 
 229 // Manages the metaspace portion belonging to a class loader
 230 class ClassLoaderMetaspace : public CHeapObj<mtClass> {
 231   friend class CollectedHeap; // For expand_and_allocate()
 232   friend class ZCollectedHeap; // For expand_and_allocate()
 233   friend class Metaspace;
 234   friend class MetaspaceUtils;
 235   friend class metaspace::PrintCLDMetaspaceInfoClosure;
 236   friend class VM_CollectForMetadataAllocation; // For expand_and_allocate()
 237 
 238  private:
 239 
 240   void initialize(Mutex* lock, Metaspace::MetaspaceType type);
 241 
 242   // Initialize the first chunk for a Metaspace.  Used for
 243   // special cases such as the boot class loader, reflection
 244   // class loader and anonymous class loader.
 245   void initialize_first_chunk(Metaspace::MetaspaceType type, Metaspace::MetadataType mdtype);
 246   metaspace::Metachunk* get_initialization_chunk(Metaspace::MetaspaceType type, Metaspace::MetadataType mdtype);
 247 
 248   const Metaspace::MetaspaceType _space_type;
 249   Mutex* const  _lock;
 250   metaspace::SpaceManager* _vsm;
 251   metaspace::SpaceManager* _class_vsm;
 252 


< prev index next >