< prev index next >

src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp

Print this page

        

*** 144,156 **** LoaderTreeNode* _next; LoadedClassInfo* _classes; int _num_classes; - LoadedClassInfo* _anon_classes; - int _num_anon_classes; - LoadedClassInfo* _hidden_classes; int _num_hidden_classes; // In default view, similar tree nodes (same loader class, same name or no name) // are folded into each other to make the output more readable. --- 144,153 ----
*** 222,232 **** } if (print_classes) { if (_classes != NULL) { for (LoadedClassInfo* lci = _classes; lci; lci = lci->_next) { ! // non-strong hidden and unsafe anonymous classes should not live in the primary CLD of their loaders. assert(lci->_cld == _cld, "must be"); branchtracker.print(st); if (lci == _classes) { // first iteration st->print("%*s ", indentation, "Classes:"); --- 219,230 ---- } if (print_classes) { if (_classes != NULL) { for (LoadedClassInfo* lci = _classes; lci; lci = lci->_next) { ! // non-strong hidden and unsafe anonymous classes should not live in ! // the primary CLD of their loaders. assert(lci->_cld == _cld, "must be"); branchtracker.print(st); if (lci == _classes) { // first iteration st->print("%*s ", indentation, "Classes:");
*** 251,287 **** // Empty line branchtracker.print(st); st->cr(); } - if (_anon_classes != NULL) { - for (LoadedClassInfo* lci = _anon_classes; lci; lci = lci->_next) { - branchtracker.print(st); - if (lci == _anon_classes) { // first iteration - st->print("%*s ", indentation, "Unsafe Anonymous Classes:"); - } else { - st->print("%*s ", indentation, ""); - } - st->print("%s", lci->_klass->external_name()); - // For unsafe anonymous classes, also print CLD if verbose. Should - // be a different one than the primary CLD. - assert(lci->_cld != _cld, "must be"); - if (verbose) { - st->print(" (Loader Data: " PTR_FORMAT ")", p2i(lci->_cld)); - } - st->cr(); - } - branchtracker.print(st); - st->print("%*s ", indentation, ""); - st->print_cr("(%u unsafe anonymous class%s)", _num_anon_classes, - (_num_anon_classes == 1) ? "" : "es"); - - // Empty line - branchtracker.print(st); - st->cr(); - } - if (_hidden_classes != NULL) { for (LoadedClassInfo* lci = _hidden_classes; lci; lci = lci->_next) { branchtracker.print(st); if (lci == _hidden_classes) { // first iteration st->print("%*s ", indentation, "Hidden Classes:"); --- 249,258 ----
*** 331,343 **** public: LoaderTreeNode(const oop loader_oop) : _loader_oop(loader_oop), _cld(NULL), _child(NULL), _next(NULL), ! _classes(NULL), _num_classes(0), _anon_classes(NULL), _num_anon_classes(0), ! _hidden_classes(NULL), _num_hidden_classes(0), ! _num_folded(0) {} void set_cld(const ClassLoaderData* cld) { _cld = cld; } --- 302,313 ---- public: LoaderTreeNode(const oop loader_oop) : _loader_oop(loader_oop), _cld(NULL), _child(NULL), _next(NULL), ! _classes(NULL), _num_classes(0), _hidden_classes(NULL), ! _num_hidden_classes(0), _num_folded(0) {} void set_cld(const ClassLoaderData* cld) { _cld = cld; }
*** 355,380 **** void add_classes(LoadedClassInfo* first_class, int num_classes, bool has_class_mirror_holder) { LoadedClassInfo** p_list_to_add_to; bool is_hidden = first_class->_klass->is_hidden(); if (has_class_mirror_holder) { ! p_list_to_add_to = is_hidden ? &_hidden_classes : &_anon_classes; } else { p_list_to_add_to = &_classes; } // Search tail. while ((*p_list_to_add_to) != NULL) { p_list_to_add_to = &(*p_list_to_add_to)->_next; } *p_list_to_add_to = first_class; if (has_class_mirror_holder) { - if (is_hidden) { _num_hidden_classes += num_classes; } else { - _num_anon_classes += num_classes; - } - } else { _num_classes += num_classes; } } const ClassLoaderData* cld() const { --- 325,346 ---- void add_classes(LoadedClassInfo* first_class, int num_classes, bool has_class_mirror_holder) { LoadedClassInfo** p_list_to_add_to; bool is_hidden = first_class->_klass->is_hidden(); if (has_class_mirror_holder) { ! p_list_to_add_to = &_hidden_classes; } else { p_list_to_add_to = &_classes; } // Search tail. while ((*p_list_to_add_to) != NULL) { p_list_to_add_to = &(*p_list_to_add_to)->_next; } *p_list_to_add_to = first_class; if (has_class_mirror_holder) { _num_hidden_classes += num_classes; } else { _num_classes += num_classes; } } const ClassLoaderData* cld() const {
< prev index next >