6990754: Use native memory and reference counting to implement SymbolTable

Move symbols from permgen into C heap and reference count them

Reviewed-by: never, acorn, jmasa, stefank
This commit is contained in:
Coleen Phillimore 2011-01-27 16:11:27 -08:00
parent 950858350d
commit 7b4f8073f0
223 changed files with 3783 additions and 3641 deletions

View file

@ -48,6 +48,7 @@ private:
GrowableArray<ciKlass*>* _unloaded_klasses;
GrowableArray<ciInstance*>* _unloaded_instances;
GrowableArray<ciReturnAddress*>* _return_addresses;
GrowableArray<ciSymbol*>* _symbols; // keep list of symbols created
int _next_ident;
public:
@ -76,6 +77,7 @@ private:
void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj);
void init_ident_of(ciObject* obj);
void init_ident_of(ciSymbol* obj);
Arena* arena() { return _arena; }
@ -88,13 +90,15 @@ public:
static void initialize();
void init_shared_objects();
void remove_symbols();
ciObjectFactory(Arena* arena, int expected_size);
// Get the ciObject corresponding to some oop.
ciObject* get(oop key);
ciSymbol* get_symbol(Symbol* key);
// Get the ciSymbol corresponding to one of the vmSymbols.
static ciSymbol* vm_symbol_at(int index);