mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-17 09:34:38 +02:00
8312401: SymbolTable::do_add_if_needed hangs when called in InstanceKlass::add_initialization_error path with requesting length exceeds max_symbol_length
Reviewed-by: dholmes, coleenp, iklam
This commit is contained in:
parent
e554fdee25
commit
36f3bae556
3 changed files with 55 additions and 2 deletions
|
@ -338,6 +338,7 @@ Symbol* SymbolTable::lookup_common(const char* name,
|
|||
}
|
||||
|
||||
Symbol* SymbolTable::new_symbol(const char* name, int len) {
|
||||
assert(len <= Symbol::max_length(), "sanity");
|
||||
unsigned int hash = hash_symbol(name, len, _alt_hash);
|
||||
Symbol* sym = lookup_common(name, len, hash);
|
||||
if (sym == nullptr) {
|
||||
|
@ -353,6 +354,7 @@ Symbol* SymbolTable::new_symbol(const Symbol* sym, int begin, int end) {
|
|||
assert(sym->refcount() != 0, "require a valid symbol");
|
||||
const char* name = (const char*)sym->base() + begin;
|
||||
int len = end - begin;
|
||||
assert(len <= Symbol::max_length(), "sanity");
|
||||
unsigned int hash = hash_symbol(name, len, _alt_hash);
|
||||
Symbol* found = lookup_common(name, len, hash);
|
||||
if (found == nullptr) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue