8219554: Redundant lookup_common in SymbolTable::add
Reviewed-by: iklam, coleenp, mikael
This commit is contained in:
parent
504562b3a4
commit
c97af8c3f7
@ -436,18 +436,16 @@ Symbol* SymbolTable::lookup_only_unicode(const jchar* name, int utf16_length,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SymbolTable::add(ClassLoaderData* loader_data, const constantPoolHandle& cp,
|
void SymbolTable::new_symbols(ClassLoaderData* loader_data, const constantPoolHandle& cp,
|
||||||
int names_count, const char** names, int* lengths,
|
int names_count, const char** names, int* lengths,
|
||||||
int* cp_indices, unsigned int* hashValues, TRAPS) {
|
int* cp_indices, unsigned int* hashValues, TRAPS) {
|
||||||
bool c_heap = !loader_data->is_the_null_class_loader_data();
|
bool c_heap = !loader_data->is_the_null_class_loader_data();
|
||||||
for (int i = 0; i < names_count; i++) {
|
for (int i = 0; i < names_count; i++) {
|
||||||
const char *name = names[i];
|
const char *name = names[i];
|
||||||
int len = lengths[i];
|
int len = lengths[i];
|
||||||
unsigned int hash = hashValues[i];
|
unsigned int hash = hashValues[i];
|
||||||
Symbol* sym = SymbolTable::the_table()->lookup_common(name, len, hash);
|
assert(SymbolTable::the_table()->lookup_shared(name, len, hash) == NULL, "must have checked already");
|
||||||
if (sym == NULL) {
|
Symbol* sym = SymbolTable::the_table()->do_add_if_needed(name, len, hash, c_heap, CHECK);
|
||||||
sym = SymbolTable::the_table()->do_add_if_needed(name, len, hash, c_heap, CHECK);
|
|
||||||
}
|
|
||||||
assert(sym->refcount() != 0, "lookup should have incremented the count");
|
assert(sym->refcount() != 0, "lookup should have incremented the count");
|
||||||
cp->symbol_at_put(cp_indices[i], sym);
|
cp->symbol_at_put(cp_indices[i], sym);
|
||||||
}
|
}
|
||||||
|
@ -144,18 +144,11 @@ private:
|
|||||||
Symbol* do_add_if_needed(const char* name, int len, uintx hash, bool heap, TRAPS);
|
Symbol* do_add_if_needed(const char* name, int len, uintx hash, bool heap, TRAPS);
|
||||||
|
|
||||||
// Adding elements
|
// Adding elements
|
||||||
static void add(ClassLoaderData* loader_data,
|
|
||||||
const constantPoolHandle& cp, int names_count,
|
|
||||||
const char** names, int* lengths, int* cp_indices,
|
|
||||||
unsigned int* hashValues, TRAPS);
|
|
||||||
|
|
||||||
static void new_symbols(ClassLoaderData* loader_data,
|
static void new_symbols(ClassLoaderData* loader_data,
|
||||||
const constantPoolHandle& cp, int names_count,
|
const constantPoolHandle& cp, int names_count,
|
||||||
const char** name, int* lengths,
|
const char** name, int* lengths,
|
||||||
int* cp_indices, unsigned int* hashValues,
|
int* cp_indices, unsigned int* hashValues,
|
||||||
TRAPS) {
|
TRAPS);
|
||||||
add(loader_data, cp, names_count, name, lengths, cp_indices, hashValues, THREAD);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Symbol* lookup_shared(const char* name, int len, unsigned int hash);
|
static Symbol* lookup_shared(const char* name, int len, unsigned int hash);
|
||||||
Symbol* lookup_dynamic(const char* name, int len, unsigned int hash);
|
Symbol* lookup_dynamic(const char* name, int len, unsigned int hash);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user