< prev index next > src/hotspot/share/oops/instanceKlass.hpp
Print this page
bool shared_loading_failed() const { return _misc_flags.shared_loading_failed(); }
void set_shared_loading_failed() { _misc_flags.set_shared_loading_failed(true); }
#if INCLUDE_CDS
+ int shared_class_loader_type() const;
void set_shared_class_loader_type(s2 loader_type) { _misc_flags.set_shared_class_loader_type(loader_type); }
void assign_class_loader_type() { _misc_flags.assign_class_loader_type(_class_loader_data); }
#endif
bool has_nonstatic_fields() const { return _misc_flags.has_nonstatic_fields(); }
bool is_reentrant_initialization(Thread *thread) { return thread == _init_thread; }
ClassState init_state() const { return Atomic::load_acquire(&_init_state); }
const char* init_state_name() const;
bool is_rewritten() const { return _misc_flags.rewritten(); }
+ static const char* state2name(ClassState state);
+
// is this a sealed class
bool is_sealed() const;
// defineClass specified verification
bool should_verify_class() const { return _misc_flags.should_verify_class(); }
bool is_marked_dependent() const { return _misc_flags.is_marked_dependent(); }
void set_is_marked_dependent(bool value) { _misc_flags.set_is_marked_dependent(value); }
// initialization (virtuals from Klass)
bool should_be_initialized() const; // means that initialize should be called
+ void initialize_from_cds(TRAPS);
void initialize(TRAPS);
void link_class(TRAPS);
bool link_class_or_fail(TRAPS); // returns false on failure
void rewrite_class(TRAPS);
void link_methods(TRAPS);
Array<AnnotationArray*>* fields_type_annotations() const {
return (_annotations != nullptr) ? _annotations->fields_type_annotations() : nullptr;
}
// allocation
instanceOop allocate_instance(TRAPS);
! static instanceOop allocate_instance(oop cls, TRAPS);
// additional member function to return a handle
instanceHandle allocate_instance_handle(TRAPS);
objArrayOop allocate_objArray(int n, int length, TRAPS);
Array<AnnotationArray*>* fields_type_annotations() const {
return (_annotations != nullptr) ? _annotations->fields_type_annotations() : nullptr;
}
// allocation
instanceOop allocate_instance(TRAPS);
! static instanceOop allocate_instance(oop cls, const char* who, TRAPS);
// additional member function to return a handle
instanceHandle allocate_instance_handle(TRAPS);
objArrayOop allocate_objArray(int n, int length, TRAPS);
void fence_and_clear_init_lock();
bool link_class_impl (TRAPS);
bool verify_code (TRAPS);
void initialize_impl (TRAPS);
! void initialize_super_interfaces (TRAPS);
void add_initialization_error(JavaThread* current, Handle exception);
oop get_initialization_error(JavaThread* current);
// find a local method (returns null if not found)
void fence_and_clear_init_lock();
bool link_class_impl (TRAPS);
bool verify_code (TRAPS);
void initialize_impl (TRAPS);
! void initialize_super_interfaces(TRAPS);
void add_initialization_error(JavaThread* current, Handle exception);
oop get_initialization_error(JavaThread* current);
// find a local method (returns null if not found)
bool can_be_verified_at_dumptime() const;
bool methods_contain_jsr_bytecode() const;
void compute_has_loops_flag_for_methods();
#endif
+ bool has_init_deps_processed() const { return _misc_flags.has_init_deps_processed(); }
+ void set_has_init_deps_processed() {
+ assert(is_initialized(), "");
+ assert(!has_init_deps_processed(), "already set"); // one-off action
+ _misc_flags.set_has_init_deps_processed(true);
+ }
+
jint compute_modifier_flags() const;
public:
// JVMTI support
jint jvmti_class_status() const;
< prev index next >