< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page

        

*** 28,37 **** --- 28,38 ---- #include "gc/shared/specialized_oop_closures.hpp" #include "memory/iterator.hpp" #include "memory/memRegion.hpp" #include "oops/metadata.hpp" #include "oops/oop.hpp" + #include "oops/oopHandle.hpp" #include "trace/traceMacros.hpp" #include "utilities/accessFlags.hpp" #include "utilities/macros.hpp" //
*** 117,127 **** // Array of all secondary supertypes Array<Klass*>* _secondary_supers; // Ordered list of all primary supertypes Klass* _primary_supers[_primary_super_limit]; // java/lang/Class instance mirroring this class ! oop _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 --- 118,128 ---- // Array of all secondary supertypes Array<Klass*>* _secondary_supers; // Ordered list of all primary supertypes Klass* _primary_supers[_primary_super_limit]; // 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
*** 146,159 **** jint _biased_lock_revocation_count; // vtable length int _vtable_len; - // Remembered sets support for the oops in the klasses. - jbyte _modified_oops; // Card Table Equivalent (YC/CMS support) - jbyte _accumulated_modified_oops; // Mod Union Equivalent (CMS support) - private: // This is an index into FileMapHeader::_classpath_entry_table[], to // associate this class with the JAR file where it's loaded from during // dump time. If a class is not loaded from the shared archive, this field is // -1. --- 147,156 ----
*** 226,242 **** assert(_primary_supers[d] == this, "proper init"); return d; } } - // store an oop into a field of a Klass - void klass_oop_store(oop* p, oop v); - void klass_oop_store(volatile oop* p, oop v); - // java mirror ! oop java_mirror() const { return _java_mirror; } ! void set_java_mirror(oop m) { klass_oop_store(&_java_mirror, m); } // modifier flags jint modifier_flags() const { return _modifier_flags; } void set_modifier_flags(jint flags) { _modifier_flags = flags; } --- 223,235 ---- assert(_primary_supers[d] == this, "proper init"); return d; } } // java mirror ! oop java_mirror() const; ! void set_java_mirror(Handle m); // modifier flags jint modifier_flags() const { return _modifier_flags; } void set_modifier_flags(jint flags) { _modifier_flags = flags; }
*** 258,278 **** // class loader data ClassLoaderData* class_loader_data() const { return _class_loader_data; } void set_class_loader_data(ClassLoaderData* loader_data) { _class_loader_data = loader_data; } - // The Klasses are not placed in the Heap, so the Card Table or - // the Mod Union Table can't be used to mark when klasses have modified oops. - // The CT and MUT bits saves this information for the individual Klasses. - void record_modified_oops() { _modified_oops = 1; } - void clear_modified_oops() { _modified_oops = 0; } - bool has_modified_oops() { return _modified_oops == 1; } - - void accumulate_modified_oops() { if (has_modified_oops()) _accumulated_modified_oops = 1; } - void clear_accumulated_modified_oops() { _accumulated_modified_oops = 0; } - bool has_accumulated_modified_oops() { return _accumulated_modified_oops == 1; } - int shared_classpath_index() const { return _shared_class_path_index; }; void set_shared_classpath_index(int index) { --- 251,260 ----
*** 596,608 **** jlong last_biased_lock_bulk_revocation_time() { return _last_biased_lock_bulk_revocation_time; } void set_last_biased_lock_bulk_revocation_time(jlong cur_time) { _last_biased_lock_bulk_revocation_time = cur_time; } TRACE_DEFINE_TRACE_ID_METHODS; - // garbage collection support - void oops_do(OopClosure* cl); - virtual void metaspace_pointers_do(MetaspaceClosure* iter); virtual MetaspaceObj::Type type() const { return ClassType; } // Iff the class loader (or mirror for anonymous classes) is alive the // Klass is considered alive. --- 578,587 ----
*** 685,699 **** static narrowKlass encode_klass_not_null(Klass* v); static narrowKlass encode_klass(Klass* v); static Klass* decode_klass_not_null(narrowKlass v); static Klass* decode_klass(narrowKlass v); - - private: - // barriers used by klass_oop_store - void klass_update_barrier_set(oop v); - void klass_update_barrier_set_pre(oop* p, oop v); }; // Helper to convert the oop iterate macro suffixes into bool values that can be used by template functions. #define nvs_nv_to_bool true #define nvs_v_to_bool false --- 664,673 ----
< prev index next >