8214822: Move ConcurrentHashTable VALUE parameter to CONFIG

Make VALUE parameter be included in CONFIG configuration, also remove BaseConfig

Reviewed-by: dholmes, kbarrett
This commit is contained in:
Coleen Phillimore 2019-06-24 16:51:23 -04:00
parent 13d3c63405
commit cd598622cc
7 changed files with 205 additions and 231 deletions

View file

@ -79,8 +79,7 @@ static CompactHashtable<
// --------------------------------------------------------------------------
typedef ConcurrentHashTable<WeakHandle<vm_string_table_data>,
StringTableConfig, mtSymbol> StringTableHash;
typedef ConcurrentHashTable<StringTableConfig, mtSymbol> StringTableHash;
static StringTableHash* _local_table = NULL;
volatile bool StringTable::_has_work = false;
@ -101,11 +100,12 @@ uintx hash_string(const jchar* s, int len, bool useAlt) {
java_lang_String::hash_code(s, len);
}
class StringTableConfig : public StringTableHash::BaseConfig {
class StringTableConfig : public StackObj {
private:
public:
static uintx get_hash(WeakHandle<vm_string_table_data> const& value,
bool* is_dead) {
typedef WeakHandle<vm_string_table_data> Value;
static uintx get_hash(Value const& value, bool* is_dead) {
EXCEPTION_MARK;
oop val_oop = value.peek();
if (val_oop == NULL) {
@ -124,15 +124,13 @@ class StringTableConfig : public StringTableHash::BaseConfig {
return 0;
}
// We use default allocation/deallocation but counted
static void* allocate_node(size_t size,
WeakHandle<vm_string_table_data> const& value) {
static void* allocate_node(size_t size, Value const& value) {
StringTable::item_added();
return StringTableHash::BaseConfig::allocate_node(size, value);
return AllocateHeap(size, mtSymbol);
}
static void free_node(void* memory,
WeakHandle<vm_string_table_data> const& value) {
static void free_node(void* memory, Value const& value) {
value.release();
StringTableHash::BaseConfig::free_node(memory, value);
FreeHeap(memory);
StringTable::item_removed();
}
};