< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page
*** 183,11 ***
      _has_value_based_class_annotation      = 1 << 2,
      _verified_at_dump_time                 = 1 << 3,
      _has_archived_enum_objs                = 1 << 4,
      // This class was not loaded from a classfile in the module image
      // or classpath.
!     _is_generated_shared_class             = 1 << 5
    };
  #endif
  
    CDS_JAVA_HEAP_ONLY(int _archived_mirror_index;)
  
--- 183,13 ---
      _has_value_based_class_annotation      = 1 << 2,
      _verified_at_dump_time                 = 1 << 3,
      _has_archived_enum_objs                = 1 << 4,
      // This class was not loaded from a classfile in the module image
      // or classpath.
!     _is_generated_shared_class             = 1 << 5,
+     // The archived mirror is already initialized. No need to call <clinit>
+     _has_preinitialized_mirror             = 1 << 6,
    };
  #endif
  
    CDS_JAVA_HEAP_ONLY(int _archived_mirror_index;)
  

*** 363,10 ***
--- 365,18 ---
    bool is_generated_shared_class() const {
      CDS_ONLY(return (_shared_class_flags & _is_generated_shared_class) != 0;)
      NOT_CDS(return false;)
    }
  
+   void set_has_preinitialized_mirror() {
+     CDS_ONLY(_shared_class_flags |= _has_preinitialized_mirror;)
+   }
+   bool has_preinitialized_mirror() const {
+     CDS_ONLY(return (_shared_class_flags & _has_preinitialized_mirror) != 0;)
+     NOT_CDS(return false;)
+   }
+ 
    bool is_shared() const                { // shadows MetaspaceObj::is_shared)()
      CDS_ONLY(return (_shared_class_flags & _is_shared_class) != 0;)
      NOT_CDS(return false;)
    }
  

*** 548,10 ***
--- 558,11 ---
    virtual ArrayKlass* array_klass_or_null() = 0;
  
    virtual oop protection_domain() const = 0;
  
    oop class_loader() const;
+   Symbol* class_loader_name_and_id() const;
  
    inline oop klass_holder() const;
  
   protected:
  
< prev index next >