127
128 // JVMTI support
129 jint jvmti_class_status() const;
130
131 // CDS support - remove and restore oops from metadata. Oops are not shared.
132 virtual void remove_unshareable_info();
133 virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
134
135 // Printing
136 void print_on(outputStream* st) const;
137 void print_value_on(outputStream* st) const;
138
139 void oop_print_on(oop obj, outputStream* st);
140
141 // Verification
142 void verify_on(outputStream* st);
143
144 void oop_verify_on(oop obj, outputStream* st);
145 };
146
147 #endif // SHARE_VM_OOPS_ARRAYKLASS_HPP
|
127
128 // JVMTI support
129 jint jvmti_class_status() const;
130
131 // CDS support - remove and restore oops from metadata. Oops are not shared.
132 virtual void remove_unshareable_info();
133 virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
134
135 // Printing
136 void print_on(outputStream* st) const;
137 void print_value_on(outputStream* st) const;
138
139 void oop_print_on(oop obj, outputStream* st);
140
141 // Verification
142 void verify_on(outputStream* st);
143
144 void oop_verify_on(oop obj, outputStream* st);
145 };
146
147 // Array oop iteration macros for declarations.
148 // Used to generate the declarations in the *ArrayKlass header files.
149
150 #define OOP_OOP_ITERATE_DECL_RANGE(OopClosureType, nv_suffix) \
151 int oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* closure, int start, int end);
152
153 #if INCLUDE_ALL_GCS
154 // Named NO_BACKWARDS because the definition used by *ArrayKlass isn't reversed, see below.
155 #define OOP_OOP_ITERATE_DECL_NO_BACKWARDS(OopClosureType, nv_suffix) \
156 int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure);
157 #endif // INCLUDE_ALL_GCS
158
159
160 // Array oop iteration macros for definitions.
161 // Used to generate the definitions in the *ArrayKlass.inline.hpp files.
162
163 #define OOP_OOP_ITERATE_DEFN_RANGE(KlassType, OopClosureType, nv_suffix) \
164 \
165 int KlassType::oop_oop_iterate_range##nv_suffix(oop obj, OopClosureType* closure, int start, int end) { \
166 return oop_oop_iterate_range<nvs_to_bool(nv_suffix)>(obj, closure, start, end); \
167 }
168
169 #if INCLUDE_ALL_GCS
170 #define OOP_OOP_ITERATE_DEFN_NO_BACKWARDS(KlassType, OopClosureType, nv_suffix) \
171 int KlassType::oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure) { \
172 /* No reverse implementation ATM. */ \
173 return oop_oop_iterate<nvs_to_bool(nv_suffix)>(obj, closure); \
174 }
175 #else
176 #define OOP_OOP_ITERATE_DEFN_NO_BACKWARDS(KlassType, OopClosureType, nv_suffix)
177 #endif
178
179 #endif // SHARE_VM_OOPS_ARRAYKLASS_HPP
|