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; |