177 |
177 |
178 // Pick hashing algorithm. |
178 // Pick hashing algorithm. |
179 unsigned int SymbolTable::hash_symbol(const char* s, int len) { |
179 unsigned int SymbolTable::hash_symbol(const char* s, int len) { |
180 return use_alternate_hashcode() ? |
180 return use_alternate_hashcode() ? |
181 AltHashing::murmur3_32(seed(), (const jbyte*)s, len) : |
181 AltHashing::murmur3_32(seed(), (const jbyte*)s, len) : |
182 java_lang_String::to_hash(s, len); |
182 java_lang_String::hash_code(s, len); |
183 } |
183 } |
184 |
184 |
185 |
185 |
186 // We take care not to be blocking while holding the |
186 // We take care not to be blocking while holding the |
187 // SymbolTable_lock. Otherwise, the system might deadlock, since the |
187 // SymbolTable_lock. Otherwise, the system might deadlock, since the |
615 bool StringTable::_needs_rehashing = false; |
615 bool StringTable::_needs_rehashing = false; |
616 |
616 |
617 // Pick hashing algorithm |
617 // Pick hashing algorithm |
618 unsigned int StringTable::hash_string(const jchar* s, int len) { |
618 unsigned int StringTable::hash_string(const jchar* s, int len) { |
619 return use_alternate_hashcode() ? AltHashing::murmur3_32(seed(), s, len) : |
619 return use_alternate_hashcode() ? AltHashing::murmur3_32(seed(), s, len) : |
620 java_lang_String::to_hash(s, len); |
620 java_lang_String::hash_code(s, len); |
621 } |
621 } |
622 |
622 |
623 oop StringTable::lookup(int index, jchar* name, |
623 oop StringTable::lookup(int index, jchar* name, |
624 int len, unsigned int hash) { |
624 int len, unsigned int hash) { |
625 int count = 0; |
625 int count = 0; |