diff -r 27e4ea99855d -r 3582bf76420e src/share/vm/ci/ciObjectFactory.hpp --- a/src/share/vm/ci/ciObjectFactory.hpp Thu Jan 27 13:42:28 2011 -0800 +++ b/src/share/vm/ci/ciObjectFactory.hpp Thu Jan 27 16:11:27 2011 -0800 @@ -48,6 +48,7 @@ GrowableArray* _unloaded_klasses; GrowableArray* _unloaded_instances; GrowableArray* _return_addresses; + GrowableArray* _symbols; // keep list of symbols created int _next_ident; public: @@ -76,6 +77,7 @@ 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 @@ 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);