src/hotspot/share/memory/heapShared.hpp
changeset 52514 f4e3900c8d08
parent 52402 72d4e10305b9
child 53244 9807daeb47c4
equal deleted inserted replaced
52513:d4f3e37d1fda 52514:f4e3900c8d08
   107   Array<Klass*>* _subgraph_object_klasses;
   107   Array<Klass*>* _subgraph_object_klasses;
   108  public:
   108  public:
   109   ArchivedKlassSubGraphInfoRecord() :
   109   ArchivedKlassSubGraphInfoRecord() :
   110     _k(NULL), _entry_field_records(NULL), _subgraph_object_klasses(NULL) {}
   110     _k(NULL), _entry_field_records(NULL), _subgraph_object_klasses(NULL) {}
   111   void init(KlassSubGraphInfo* info);
   111   void init(KlassSubGraphInfo* info);
   112   Klass* klass() { return _k; }
   112   Klass* klass() const { return _k; }
   113   Array<juint>*  entry_field_records() { return _entry_field_records; }
   113   Array<juint>*  entry_field_records() const { return _entry_field_records; }
   114   Array<Klass*>* subgraph_object_klasses() { return _subgraph_object_klasses; }
   114   Array<Klass*>* subgraph_object_klasses() const { return _subgraph_object_klasses; }
   115 };
   115 };
   116 #endif // INCLUDE_CDS_JAVA_HEAP
   116 #endif // INCLUDE_CDS_JAVA_HEAP
   117 
   117 
   118 class HeapShared: AllStatic {
   118 class HeapShared: AllStatic {
   119   friend class VerifySharedOopClosure;
   119   friend class VerifySharedOopClosure;
   152                                ResourceObj::C_HEAP> {
   152                                ResourceObj::C_HEAP> {
   153   public:
   153   public:
   154     int _count;
   154     int _count;
   155   };
   155   };
   156 
   156 
   157   inline static ArchivedKlassSubGraphInfoRecord* read_record_from_compact_hashtable(address base_address, u4 offset) {
   157 public: // solaris compiler wants this for RunTimeKlassSubGraphInfoTable
   158     return (ArchivedKlassSubGraphInfoRecord*)(base_address + offset);
   158   inline static bool record_equals_compact_hashtable_entry(
   159   }
   159        const ArchivedKlassSubGraphInfoRecord* value, const Klass* key, int len_unused) {
   160 
       
   161   inline static bool record_equals_compact_hashtable_entry(ArchivedKlassSubGraphInfoRecord* value, const Klass* key, int len_unused) {
       
   162     return (value->klass() == key);
   160     return (value->klass() == key);
   163   }
   161   }
   164 
   162 
   165   typedef CompactHashtable<
   163 private:
       
   164   typedef OffsetCompactHashtable<
   166     const Klass*,
   165     const Klass*,
   167     ArchivedKlassSubGraphInfoRecord*,
   166     const ArchivedKlassSubGraphInfoRecord*,
   168     read_record_from_compact_hashtable,
       
   169     record_equals_compact_hashtable_entry
   167     record_equals_compact_hashtable_entry
   170     > RunTimeKlassSubGraphInfoTable;
   168     > RunTimeKlassSubGraphInfoTable;
   171 
   169 
   172   static DumpTimeKlassSubGraphInfoTable* _dump_time_subgraph_info_table;
   170   static DumpTimeKlassSubGraphInfoTable* _dump_time_subgraph_info_table;
   173   static RunTimeKlassSubGraphInfoTable _run_time_subgraph_info_table;
   171   static RunTimeKlassSubGraphInfoTable _run_time_subgraph_info_table;