Mercurial > hg > graal-compiler
diff src/share/vm/classfile/symbolTable.cpp @ 4800:94ec88ca68e2
7115199: Add event tracing hooks and Java Flight Recorder infrastructure
Summary: Added a nop tracing infrastructure, JFR makefile changes and other infrastructure used only by JFR.
Reviewed-by: acorn, sspitsyn
Contributed-by: markus.gronlund@oracle.com
author | phh |
---|---|
date | Wed, 11 Jan 2012 17:34:02 -0500 |
parents | 352622fd140a |
children | fc9d8850ab8b |
line wrap: on
line diff
--- a/src/share/vm/classfile/symbolTable.cpp Mon Jan 09 10:27:24 2012 +0100 +++ b/src/share/vm/classfile/symbolTable.cpp Wed Jan 11 17:34:02 2012 -0500 @@ -204,6 +204,24 @@ return s; } +// Look up the address of the literal in the SymbolTable for this Symbol* +// Do not create any new symbols +// Do not increment the reference count to keep this alive +Symbol** SymbolTable::lookup_symbol_addr(Symbol* sym){ + unsigned int hash = hash_symbol((char*)sym->bytes(), sym->utf8_length()); + int index = the_table()->hash_to_index(hash); + + for (HashtableEntry<Symbol*>* e = the_table()->bucket(index); e != NULL; e = e->next()) { + if (e->hash() == hash) { + Symbol* literal_sym = e->literal(); + if (sym == literal_sym) { + return e->literal_addr(); + } + } + } + return NULL; +} + // Suggestion: Push unicode-based lookup all the way into the hashing // and probing logic, so there is no need for convert_to_utf8 until // an actual new Symbol* is created.