< prev index next >
src/hotspot/share/utilities/hashtable.inline.hpp
Print this page
@@ -52,20 +52,28 @@
// Called on startup, no locking needed
initialize(table_size, entry_size, number_of_entries);
_buckets = buckets;
}
+template <MEMFLAGS F> inline BasicHashtable<F>::~BasicHashtable() {
+ for (int i = 0; i < _entry_blocks->length(); i++) {
+ FREE_C_HEAP_ARRAY(char, _entry_blocks->at(i));
+ }
+ delete _entry_blocks;
+ free_buckets();
+}
template <MEMFLAGS F> inline void BasicHashtable<F>::initialize(int table_size, int entry_size,
int number_of_entries) {
// Called on startup, no locking needed
_table_size = table_size;
_entry_size = entry_size;
_free_list = NULL;
_first_free_entry = NULL;
_end_block = NULL;
_number_of_entries = number_of_entries;
+ _entry_blocks = new(ResourceObj::C_HEAP, F) GrowableArray<char*>(4, true, F);
}
// The following method is MT-safe and may be used with caution.
template <MEMFLAGS F> inline BasicHashtableEntry<F>* BasicHashtable<F>::bucket(int i) const {
< prev index next >