< 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 >