< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page
*** 322,10 ***
--- 322,11 ---
    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(); }

*** 517,10 ***
--- 518,12 ---
    bool is_reentrant_initialization(Thread *thread)  { return thread == _init_thread; }
    ClassState  init_state() const           { return _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(); }

*** 530,10 ***
--- 533,11 ---
    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);

*** 799,11 ***
    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);
--- 803,11 ---
    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);

*** 1079,11 ***
    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)
--- 1083,11 ---
    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)

*** 1119,10 ***
--- 1123,17 ---
    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 >