< prev index next >

src/hotspot/share/oops/klass.hpp


*** 138,150 **** // java/lang/Class instance mirroring this class OopHandle _java_mirror; // Superclass Klass* _super; // First subclass (NULL if none); _subklass->next_sibling() is next one ! Klass* _subklass; // Sibling link (or NULL); links all subklasses of a klass ! Klass* _next_sibling; // All klasses loaded by a class loader are chained through these links Klass* _next_link; // The VM's representation of the ClassLoader used to load this class. --- 138,150 ---- // java/lang/Class instance mirroring this class OopHandle _java_mirror; // Superclass Klass* _super; // First subclass (NULL if none); _subklass->next_sibling() is next one ! Klass* volatile _subklass; // Sibling link (or NULL); links all subklasses of a klass ! Klass* volatile _next_sibling; // All klasses loaded by a class loader are chained through these links Klass* _next_link; // The VM's representation of the ClassLoader used to load this class. ***************
*** 282,293 **** // Note: for instances layout_helper() may include padding. // Use InstanceKlass::contains_field_offset to classify field offsets. // sub/superklass links ! Klass* subklass() const { return _subklass; } ! Klass* next_sibling() const { return _next_sibling; } InstanceKlass* superklass() const; void append_to_sibling_list(); // add newly created receiver to superklass' subklass list void set_next_link(Klass* k) { _next_link = k; } Klass* next_link() const { return _next_link; } // The next klass defined by the class loader. --- 282,294 ---- // Note: for instances layout_helper() may include padding. // Use InstanceKlass::contains_field_offset to classify field offsets. // sub/superklass links ! Klass* subklass(bool log = false) const; ! Klass* next_sibling(bool log = false) const; ! InstanceKlass* superklass() const; void append_to_sibling_list(); // add newly created receiver to superklass' subklass list void set_next_link(Klass* k) { _next_link = k; } Klass* next_link() const { return _next_link; } // The next klass defined by the class loader. ***************
*** 666,675 **** --- 667,678 ---- // Load the klass's holder as a phantom. This is useful when a weak Klass // pointer has been "peeked" and then must be kept alive before it may // be used safely. oop holder_phantom() const; + void clean_subklass(); + static void clean_weak_klass_links(bool unloading_occurred, bool clean_alive_klasses = true); static void clean_subklass_tree() { clean_weak_klass_links(/*unloading_occurred*/ true , /* clean_alive_klasses */ false); }
< prev index next >