< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page

        

*** 28,37 **** --- 28,38 ---- #include "memory/allocation.hpp" #include "memory/memRegion.hpp" #include "memory/metaspace.hpp" #include "memory/metaspaceCounters.hpp" #include "oops/oopHandle.hpp" + #include "oops/weakHandle.hpp" #include "runtime/mutex.hpp" #include "trace/traceMacros.hpp" #include "utilities/growableArray.hpp" #include "utilities/macros.hpp" #if INCLUDE_TRACE
*** 111,121 **** static void modules_unloading_do(void f(ModuleEntry*)); static void packages_do(void f(PackageEntry*)); static void packages_unloading_do(void f(PackageEntry*)); static void loaded_classes_do(KlassClosure* klass_closure); static void classes_unloading_do(void f(Klass* const)); ! static bool do_unloading(BoolObjectClosure* is_alive, bool clean_previous_versions); // dictionary do // Iterate over all klasses in dictionary, but // just the classes from defining class loaders. static void dictionary_classes_do(void f(InstanceKlass*)); --- 112,122 ---- static void modules_unloading_do(void f(ModuleEntry*)); static void packages_do(void f(PackageEntry*)); static void packages_unloading_do(void f(PackageEntry*)); static void loaded_classes_do(KlassClosure* klass_closure); static void classes_unloading_do(void f(Klass* const)); ! static bool do_unloading(BoolObjectClosure* is_alive_closure, bool clean_previous_versions); // dictionary do // Iterate over all klasses in dictionary, but // just the classes from defining class loaders. static void dictionary_classes_do(void f(InstanceKlass*));
*** 217,226 **** --- 218,228 ---- friend class MetaDataFactory; friend class Method; static ClassLoaderData * _the_null_class_loader_data; + WeakHandle _holder; // The oop that determines lifetime of this class loader oop _class_loader; // oop used to uniquely identify a class loader // class loader or a canonical class path ClassLoaderMetaspace * volatile _metaspace; // Meta-space where meta-data defined by the // classes in the class loader are allocated.
*** 306,316 **** // GC interface. void clear_claimed() { _claimed = 0; } bool claimed() const { return _claimed == 1; } bool claim(); ! bool is_alive(BoolObjectClosure* is_alive_closure) const; // Accessors ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } static ClassLoaderData* the_null_class_loader_data() { --- 308,318 ---- // GC interface. void clear_claimed() { _claimed = 0; } bool claimed() const { return _claimed == 1; } bool claim(); ! bool is_alive() const; // Accessors ClassLoaderMetaspace* metaspace_or_null() const { return _metaspace; } static ClassLoaderData* the_null_class_loader_data() {
*** 362,371 **** --- 364,375 ---- // Used to refcount an anonymous class's CLD in order to // indicate their aliveness without a keep_alive_object(). void inc_keep_alive(); void dec_keep_alive(); + void update_holder(Handle holder); + inline unsigned int identity_hash() const { return (unsigned int)(((intptr_t)this) >> 3); } void oops_do(OopClosure* f, bool must_claim, bool clear_modified_oops = false); void classes_do(KlassClosure* klass_closure);
< prev index next >