< prev index next >

src/hotspot/share/classfile/compactHashtable.hpp

Print this page




 216     _buckets = 0;
 217     _entries = 0;
 218   }
 219 
 220   void init(address base_address, u4 entry_count, u4 bucket_count, u4* buckets, u4* entries) {
 221     _base_address = base_address;
 222     _bucket_count = bucket_count;
 223     _entry_count = entry_count;
 224     _buckets = buckets;
 225     _entries = entries;
 226   }
 227 
 228   template <class I> inline void iterate(const I& iterator);
 229 
 230   bool exists(u4 value);
 231 
 232   // For reading from/writing to the CDS archive
 233   void serialize(SerializeClosure* soc);
 234 
 235   inline bool empty() {
 236     return (_entry_count==0);
 237   }
 238 };
 239 
 240 template <class T, class N> class CompactHashtable : public SimpleCompactHashtable {
 241   friend class VMStructs;
 242 
 243 public:
 244   enum CompactHashtableType {
 245     _symbol_table = 0,
 246     _string_table = 1
 247   };
 248 
 249 private:
 250   u4 _type;
 251 
 252   inline Symbol* decode_entry(CompactHashtable<Symbol*, char>* const t,
 253                               u4 offset, const char* name, int len);
 254 
 255   inline oop decode_entry(CompactHashtable<oop, char>* const t,
 256                           u4 offset, const char* name, int len);




 216     _buckets = 0;
 217     _entries = 0;
 218   }
 219 
 220   void init(address base_address, u4 entry_count, u4 bucket_count, u4* buckets, u4* entries) {
 221     _base_address = base_address;
 222     _bucket_count = bucket_count;
 223     _entry_count = entry_count;
 224     _buckets = buckets;
 225     _entries = entries;
 226   }
 227 
 228   template <class I> inline void iterate(const I& iterator);
 229 
 230   bool exists(u4 value);
 231 
 232   // For reading from/writing to the CDS archive
 233   void serialize(SerializeClosure* soc);
 234 
 235   inline bool empty() {
 236     return (_entry_count == 0);
 237   }
 238 };
 239 
 240 template <class T, class N> class CompactHashtable : public SimpleCompactHashtable {
 241   friend class VMStructs;
 242 
 243 public:
 244   enum CompactHashtableType {
 245     _symbol_table = 0,
 246     _string_table = 1
 247   };
 248 
 249 private:
 250   u4 _type;
 251 
 252   inline Symbol* decode_entry(CompactHashtable<Symbol*, char>* const t,
 253                               u4 offset, const char* name, int len);
 254 
 255   inline oop decode_entry(CompactHashtable<oop, char>* const t,
 256                           u4 offset, const char* name, int len);


< prev index next >