< prev index next >

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

Print this page

        

*** 41,59 **** --- 41,61 ---- initialize(table_size, entry_size, 0); _buckets = NEW_C_HEAP_ARRAY2(HashtableBucket<F>, table_size, F, CURRENT_PC); for (int index = 0; index < _table_size; index++) { _buckets[index].clear(); } + _stats_rate = TableRateStatistics(); } template <MEMFLAGS F> inline BasicHashtable<F>::BasicHashtable(int table_size, int entry_size, HashtableBucket<F>* buckets, int number_of_entries) { // Called on startup, no locking needed initialize(table_size, entry_size, number_of_entries); _buckets = buckets; + _stats_rate = TableRateStatistics(); } 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));
*** 99,119 **** --- 101,128 ---- } template <MEMFLAGS F> inline void BasicHashtable<F>::set_entry(int index, BasicHashtableEntry<F>* entry) { _buckets[index].set_entry(entry); + if (entry != NULL) { + _stats_rate.add(); + } else { + _stats_rate.remove(); + } } template <MEMFLAGS F> inline void BasicHashtable<F>::add_entry(int index, BasicHashtableEntry<F>* entry) { entry->set_next(bucket(index)); _buckets[index].set_entry(entry); ++_number_of_entries; + _stats_rate.add(); } template <MEMFLAGS F> inline void BasicHashtable<F>::free_entry(BasicHashtableEntry<F>* entry) { entry->set_next(_free_list); _free_list = entry; --_number_of_entries; + _stats_rate.remove(); } #endif // SHARE_UTILITIES_HASHTABLE_INLINE_HPP
< prev index next >