75 void set_mark(volatile markOop m) { _mark = m; }
76
77 inline void release_set_mark(markOop m);
78 inline markOop cas_set_mark(markOop new_mark, markOop old_mark);
79
80 // Used only to re-initialize the mark word (e.g., of promoted
81 // objects during a GC) -- requires a valid klass pointer
82 inline void init_mark();
83
84 inline Klass* klass() const;
85 inline Klass* klass_or_null() const volatile;
86 inline Klass** klass_addr();
87 inline narrowKlass* compressed_klass_addr();
88
89 inline void set_klass(Klass* k);
90
91 // For klass field compression
92 inline int klass_gap() const;
93 inline void set_klass_gap(int z);
94 // For when the klass pointer is being used as a linked list "next" field.
95 inline void set_klass_to_list_ptr(oop k);
96 inline oop list_ptr_from_klass();
97
98 // size of object header, aligned to platform wordSize
99 static int header_size() { return sizeof(oopDesc)/HeapWordSize; }
100
101 // Returns whether this is an instance of k or an instance of a subclass of k
102 inline bool is_a(Klass* k) const;
103
104 // Returns the actual oop size of the object
105 inline int size();
106
107 // Sometimes (for complicated concurrency-related reasons), it is useful
108 // to be able to figure out the size of an object knowing its klass.
109 inline int size_given_klass(Klass* klass);
110
111 // type test operations (inlined in oop.inline.hpp)
112 inline bool is_instance() const;
113 inline bool is_array() const;
114 inline bool is_objArray() const;
115 inline bool is_typeArray() const;
116
|
75 void set_mark(volatile markOop m) { _mark = m; }
76
77 inline void release_set_mark(markOop m);
78 inline markOop cas_set_mark(markOop new_mark, markOop old_mark);
79
80 // Used only to re-initialize the mark word (e.g., of promoted
81 // objects during a GC) -- requires a valid klass pointer
82 inline void init_mark();
83
84 inline Klass* klass() const;
85 inline Klass* klass_or_null() const volatile;
86 inline Klass** klass_addr();
87 inline narrowKlass* compressed_klass_addr();
88
89 inline void set_klass(Klass* k);
90
91 // For klass field compression
92 inline int klass_gap() const;
93 inline void set_klass_gap(int z);
94 // For when the klass pointer is being used as a linked list "next" field.
95 inline void set_klass_to_list_ptr(oopDesc* k);
96 inline oopDesc* list_ptr_from_klass();
97
98 // size of object header, aligned to platform wordSize
99 static int header_size() { return sizeof(oopDesc)/HeapWordSize; }
100
101 // Returns whether this is an instance of k or an instance of a subclass of k
102 inline bool is_a(Klass* k) const;
103
104 // Returns the actual oop size of the object
105 inline int size();
106
107 // Sometimes (for complicated concurrency-related reasons), it is useful
108 // to be able to figure out the size of an object knowing its klass.
109 inline int size_given_klass(Klass* klass);
110
111 // type test operations (inlined in oop.inline.hpp)
112 inline bool is_instance() const;
113 inline bool is_array() const;
114 inline bool is_objArray() const;
115 inline bool is_typeArray() const;
116
|