285 // What kind of ciObject is this?
286 bool is_instance_klass() const { return true; }
287
288 virtual ciKlass* exact_klass() {
289 if (is_loaded() && is_final() && !is_interface()) {
290 return this;
291 }
292 return nullptr;
293 }
294
295 bool can_be_instantiated() {
296 assert(is_loaded(), "must be loaded");
297 return !is_interface() && !is_abstract();
298 }
299
300 bool has_trusted_loader() const {
301 return _has_trusted_loader;
302 }
303 GrowableArray<ciInstanceKlass*>* transitive_interfaces() const;
304
305 // Replay support
306
307 // Dump the current state of this klass for compilation replay.
308 virtual void dump_replay_data(outputStream* out);
309
310 static void dump_replay_instanceKlass(outputStream* out, InstanceKlass* ik);
311
312
313 // Return stable class name suitable for replay file.
314 const char *replay_name() const;
315
316 #ifdef ASSERT
317 bool debug_final_field_at(int offset);
318 bool debug_stable_field_at(int offset);
319 #endif
320 };
321
322 #endif // SHARE_CI_CIINSTANCEKLASS_HPP
|
285 // What kind of ciObject is this?
286 bool is_instance_klass() const { return true; }
287
288 virtual ciKlass* exact_klass() {
289 if (is_loaded() && is_final() && !is_interface()) {
290 return this;
291 }
292 return nullptr;
293 }
294
295 bool can_be_instantiated() {
296 assert(is_loaded(), "must be loaded");
297 return !is_interface() && !is_abstract();
298 }
299
300 bool has_trusted_loader() const {
301 return _has_trusted_loader;
302 }
303 GrowableArray<ciInstanceKlass*>* transitive_interfaces() const;
304
305 int hash_offset_in_bytes() const {
306 return get_instanceKlass()->hash_offset_in_bytes(nullptr, markWord(0));
307 }
308
309 // Replay support
310
311 // Dump the current state of this klass for compilation replay.
312 virtual void dump_replay_data(outputStream* out);
313
314 static void dump_replay_instanceKlass(outputStream* out, InstanceKlass* ik);
315
316
317 // Return stable class name suitable for replay file.
318 const char *replay_name() const;
319
320 #ifdef ASSERT
321 bool debug_final_field_at(int offset);
322 bool debug_stable_field_at(int offset);
323 #endif
324 };
325
326 #endif // SHARE_CI_CIINSTANCEKLASS_HPP
|