< prev index next >

src/hotspot/share/cds/dumpTimeClassInfo.hpp

Print this page
@@ -40,10 +40,13 @@
  
  class DumpTimeClassInfo: public CHeapObj<mtClass> {
    bool                         _excluded;
    bool                         _is_early_klass;
    bool                         _has_checked_exclusion;
+   bool                         _can_be_preinited;
+   bool                         _has_done_preinit_check;
+   bool                         _forced_preinit;
  
    class DTLoaderConstraint {
      Symbol* _name;
      char _loader_type1;
      char _loader_type2;

@@ -135,10 +138,13 @@
      _klass = nullptr;
      _nest_host = nullptr;
      _failed_verification = false;
      _is_archived_lambda_proxy = false;
      _has_checked_exclusion = false;
+     _can_be_preinited = false;
+     _has_done_preinit_check = false;
+     _forced_preinit = false;
      _id = -1;
      _clsfile_size = -1;
      _clsfile_crc32 = -1;
      _excluded = false;
      _is_early_klass = JvmtiExport::is_early_phase();

@@ -194,13 +200,11 @@
          _loader_constraints->adr_at(i)->metaspace_pointers_do(it);
        }
      }
    }
  
-   bool is_excluded() {
-     return _excluded || _failed_verification;
-   }
+   bool is_excluded();
  
    // Was this class loaded while JvmtiExport::is_early_phase()==true
    bool is_early_klass() {
      return _is_early_klass;
    }

@@ -212,10 +216,24 @@
    bool failed_verification() const                  { return _failed_verification; }
    void set_failed_verification()                    { _failed_verification = true; }
    InstanceKlass* nest_host() const                  { return _nest_host; }
    void set_nest_host(InstanceKlass* nest_host)      { _nest_host = nest_host; }
  
+   void force_preinit()                              { _forced_preinit = true; }
+   bool is_forced_preinit() const                    { return _forced_preinit; }
+   bool can_be_preinited() const                     { return _can_be_preinited; }
+   bool has_done_preinit_check() const               { return _has_done_preinit_check; }
+ 
+   void set_can_be_preinited(bool v) {
+     _can_be_preinited = v;
+     _has_done_preinit_check = true;
+   }
+   void reset_preinit_check() {
+     _can_be_preinited = false;
+     _has_done_preinit_check = false;
+   }
+ 
    size_t runtime_info_bytesize() const;
  };
  
  template <typename T>
  inline unsigned DumpTimeSharedClassTable_hash(T* const& k) {
< prev index next >