< prev index next >

src/hotspot/share/utilities/hashtable.inline.hpp

Print this page

*** 52,71 **** --- 52,79 ---- // 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 >