< prev index next >
src/share/vm/classfile/classLoaderData.hpp
Print this page
*** 44,56 ****
//
// A ClassLoaderData also encapsulates the allocation space, called a metaspace,
// used by the dynamic linker to allocate the runtime representation of all
// the types it defines.
//
! // ClassLoaderData are stored in the runtime representation of classes and the
! // system dictionary, are roots of garbage collection, and provides iterators
! // for root tracing and other GC operations.
class ClassLoaderData;
class JNIMethodBlock;
class Metadebug;
class ModuleEntry;
--- 44,55 ----
//
// A ClassLoaderData also encapsulates the allocation space, called a metaspace,
// used by the dynamic linker to allocate the runtime representation of all
// the types it defines.
//
! // ClassLoaderData are stored in the runtime representation of classes,
! // and provides iterators for root tracing and other GC operations.
class ClassLoaderData;
class JNIMethodBlock;
class Metadebug;
class ModuleEntry;
*** 239,251 ****
ChunkedHandleList _handles; // Handles to constant pool arrays, Modules, etc, which
// have the same life cycle of the corresponding ClassLoader.
Klass* volatile _klasses; // The classes defined by the class loader.
PackageEntryTable* volatile _packages; // The packages defined by the class loader.
- ModuleEntry* _unnamed_module; // This class loader's unnamed module.
ModuleEntryTable* volatile _modules; // The modules defined by the class loader.
! Dictionary* volatile _dictionary; // The loaded InstanceKlasses, including initiated by this class loader
// These method IDs are created for the class loader and set to NULL when the
// class loader is unloaded. They are rarely freed, only for redefine classes
// and if they lose a data race in InstanceKlass.
JNIMethodBlock* _jmethod_ids;
--- 238,250 ----
ChunkedHandleList _handles; // Handles to constant pool arrays, Modules, etc, which
// have the same life cycle of the corresponding ClassLoader.
Klass* volatile _klasses; // The classes defined by the class loader.
PackageEntryTable* volatile _packages; // The packages defined by the class loader.
ModuleEntryTable* volatile _modules; // The modules defined by the class loader.
! ModuleEntry* _unnamed_module; // This class loader's unnamed module.
! Dictionary* _dictionary; // The loaded InstanceKlasses, including initiated by this class loader
// These method IDs are created for the class loader and set to NULL when the
// class loader is unloaded. They are rarely freed, only for redefine classes
// and if they lose a data race in InstanceKlass.
JNIMethodBlock* _jmethod_ids;
*** 288,297 ****
--- 287,297 ----
void free_deallocate_list();
// Allocate out of this class loader data
MetaWord* allocate(size_t size);
+ Dictionary* create_dictionary();
public:
bool is_alive(BoolObjectClosure* is_alive_closure) const;
// Accessors
*** 375,386 ****
ModuleEntry* unnamed_module() { return _unnamed_module; }
ModuleEntryTable* modules();
bool modules_defined() { return (_modules != NULL); }
// Loaded class dictionary
! Dictionary* dictionary();
! Dictionary* dictionary_or_null();
void add_to_deallocate_list(Metadata* m);
static ClassLoaderData* class_loader_data(oop loader);
static ClassLoaderData* class_loader_data_or_null(oop loader);
--- 375,385 ----
ModuleEntry* unnamed_module() { return _unnamed_module; }
ModuleEntryTable* modules();
bool modules_defined() { return (_modules != NULL); }
// Loaded class dictionary
! Dictionary* dictionary() const { return _dictionary; }
void add_to_deallocate_list(Metadata* m);
static ClassLoaderData* class_loader_data(oop loader);
static ClassLoaderData* class_loader_data_or_null(oop loader);
< prev index next >