< prev index next >

src/hotspot/share/cds/dumpTimeClassInfo.hpp

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

*** 136,10 ***
--- 138,12 ---
      _klass = nullptr;
      _nest_host = nullptr;
      _failed_verification = false;
      _is_registered_lambda_proxy = false;
      _has_checked_exclusion = false;
+     _can_be_preinited = false;
+     _has_done_preinit_check = false;
      _id = -1;
      _clsfile_size = -1;
      _clsfile_crc32 = -1;
      _excluded = false;
      _is_aot_tooling_class = false;

*** 196,13 ***
          _loader_constraints->adr_at(i)->metaspace_pointers_do(it);
        }
      }
    }
  
!   bool is_excluded() {
-     return _excluded || _failed_verification;
-   }
  
    bool is_aot_tooling_class() {
      return _is_aot_tooling_class;
    }
  
--- 200,11 ---
          _loader_constraints->adr_at(i)->metaspace_pointers_do(it);
        }
      }
    }
  
!   bool is_excluded();
  
    bool is_aot_tooling_class() {
      return _is_aot_tooling_class;
    }
  

*** 222,10 ***
--- 224,22 ---
    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; }
  
+   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) {

*** 270,10 ***
--- 284,11 ---
      }
    }
  
    template<class ITER> void iterate_all_live_classes(ITER* iter) const;
    template<typename Function> void iterate_all_live_classes(Function function) const;
+   template<typename Function> void iterate_all_classes_in_builtin_loaders(Function function) const;
  
  private:
    // It's unsafe to iterate on classes whose loader is dead.
    // Declare these private and don't implement them. This forces users of
    // DumpTimeSharedClassTable to use the iterate_all_live_classes() methods
< prev index next >