< prev index next > src/hotspot/share/memory/classLoaderMetaspace.hpp
Print this page
class outputStream;
namespace metaspace {
struct ClmsStats;
+ class ClmsTester;
class MetaspaceArena;
+ class MetaspaceContext;
}
// A ClassLoaderMetaspace manages MetaspaceArena(s) for a CLD.
//
// A CLD owns one MetaspaceArena if UseCompressedClassPointers is false. Otherwise
// + chunk ... chunk
// ^
// alloc top
//
class ClassLoaderMetaspace : public CHeapObj<mtClass> {
+ friend class metaspace::ClmsTester; // for gtests
// A reference to an outside lock, held by the CLD.
Mutex* const _lock;
const Metaspace::MetaspaceType _space_type;
Mutex* lock() const { return _lock; }
metaspace::MetaspaceArena* non_class_space_arena() const { return _non_class_space_arena; }
metaspace::MetaspaceArena* class_space_arena() const { return _class_space_arena; }
- public:
+ bool have_class_space_arena() const { return _class_space_arena != nullptr; }
+
+ ClassLoaderMetaspace(Mutex* lock, Metaspace::MetaspaceType space_type,
+ metaspace::MetaspaceContext* non_class_context,
+ metaspace::MetaspaceContext* class_context,
+ size_t klass_alignment_words);
+ public:
ClassLoaderMetaspace(Mutex* lock, Metaspace::MetaspaceType space_type);
~ClassLoaderMetaspace();
Metaspace::MetaspaceType space_type() const { return _space_type; }
< prev index next >