< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page

        

*** 35,44 **** --- 35,47 ---- #include "utilities/macros.hpp" #if INCLUDE_JFR #include "jfr/support/jfrTraceIdExtension.hpp" #endif + // external name (synthetic) for the primordial "'bootstrap'" class loader instance + #define BOOTSTRAP_LOADER_NAME "'bootstrap'" + #define BOOTSTRAP_LOADER_NAME_LEN 11 // // A class loader represents a linkset. Conceptually, a linkset identifies // the complete transitive closure of resolved links that a dynamic linker can // produce.
*** 256,268 **** GrowableArray<Metadata*>* _deallocate_list; // Support for walking class loader data objects ClassLoaderData* _next; /// Next loader_datas created - // JFR support Klass* _class_loader_klass; ! Symbol* _class_loader_name; JFR_ONLY(DEFINE_TRACE_ID_FIELD;) void set_next(ClassLoaderData* next) { _next = next; } ClassLoaderData* next() const { return _next; } --- 259,271 ---- GrowableArray<Metadata*>* _deallocate_list; // Support for walking class loader data objects ClassLoaderData* _next; /// Next loader_datas created Klass* _class_loader_klass; ! Symbol* _name; ! Symbol* _name_and_id; JFR_ONLY(DEFINE_TRACE_ID_FIELD;) void set_next(ClassLoaderData* next) { _next = next; } ClassLoaderData* next() const { return _next; }
*** 360,371 **** void inc_keep_alive(); void dec_keep_alive(); void initialize_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); Klass* klasses() { return _klasses; } --- 363,372 ----
*** 375,385 **** void print() { print_on(tty); } void print_on(outputStream* out) const PRODUCT_RETURN; void print_value() { print_value_on(tty); } void print_value_on(outputStream* out) const; void verify(); - const char* loader_name() const; OopHandle add_handle(Handle h); void remove_handle(OopHandle h); void init_handle_locked(OopHandle& pd, Handle h); // used for concurrent access to ModuleEntry::_pd field void add_class(Klass* k, bool publicize = true); --- 376,385 ----
*** 398,416 **** static ClassLoaderData* class_loader_data(oop loader); static ClassLoaderData* class_loader_data_or_null(oop loader); static ClassLoaderData* anonymous_class_loader_data(Handle loader); ! // Returns Klass* of associated class loader, or NULL if associated loader is <bootstrap>. // Also works if unloading. Klass* class_loader_klass() const { return _class_loader_klass; } ! // Returns Name of associated class loader. ! // Returns NULL if associated class loader is <bootstrap> or if no name has been set for ! // this loader. ! // Also works if unloading. ! Symbol* class_loader_name() const { return _class_loader_name; } JFR_ONLY(DEFINE_TRACE_ID_METHODS;) }; // An iterator that distributes Klasses to parallel worker threads. --- 398,418 ---- static ClassLoaderData* class_loader_data(oop loader); static ClassLoaderData* class_loader_data_or_null(oop loader); static ClassLoaderData* anonymous_class_loader_data(Handle loader); ! // Returns Klass* of associated class loader, or NULL if associated loader is 'bootstrap'. // Also works if unloading. Klass* class_loader_klass() const { return _class_loader_klass; } ! // Obtain the class loader's _name, works during unloading. ! const char* loader_name() const; ! Symbol* name() const { return _name; } ! ! // Obtain the class loader's _name_and_id, works during unloading. ! const char* loader_name_and_id() const; ! Symbol* name_and_id() const { return _name_and_id; } JFR_ONLY(DEFINE_TRACE_ID_METHODS;) }; // An iterator that distributes Klasses to parallel worker threads.
< prev index next >