Mercurial > hg > graal-jvmci-8
comparison src/share/vm/ci/ciObjectFactory.hpp @ 2177:3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
Summary: move symbols from permgen into C heap and reference count them
Reviewed-by: never, acorn, jmasa, stefank
author | coleenp |
---|---|
date | Thu, 27 Jan 2011 16:11:27 -0800 |
parents | f95d63e2154a |
children | d25d4ca69222 1d1603768966 |
comparison
equal
deleted
inserted
replaced
2176:27e4ea99855d | 2177:3582bf76420e |
---|---|
46 GrowableArray<ciObject*>* _ci_objects; | 46 GrowableArray<ciObject*>* _ci_objects; |
47 GrowableArray<ciMethod*>* _unloaded_methods; | 47 GrowableArray<ciMethod*>* _unloaded_methods; |
48 GrowableArray<ciKlass*>* _unloaded_klasses; | 48 GrowableArray<ciKlass*>* _unloaded_klasses; |
49 GrowableArray<ciInstance*>* _unloaded_instances; | 49 GrowableArray<ciInstance*>* _unloaded_instances; |
50 GrowableArray<ciReturnAddress*>* _return_addresses; | 50 GrowableArray<ciReturnAddress*>* _return_addresses; |
51 GrowableArray<ciSymbol*>* _symbols; // keep list of symbols created | |
51 int _next_ident; | 52 int _next_ident; |
52 | 53 |
53 public: | 54 public: |
54 struct NonPermObject : public ResourceObj { | 55 struct NonPermObject : public ResourceObj { |
55 ciObject* _object; | 56 ciObject* _object; |
74 | 75 |
75 NonPermObject* &find_non_perm(oop key); | 76 NonPermObject* &find_non_perm(oop key); |
76 void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj); | 77 void insert_non_perm(NonPermObject* &where, oop key, ciObject* obj); |
77 | 78 |
78 void init_ident_of(ciObject* obj); | 79 void init_ident_of(ciObject* obj); |
80 void init_ident_of(ciSymbol* obj); | |
79 | 81 |
80 Arena* arena() { return _arena; } | 82 Arena* arena() { return _arena; } |
81 | 83 |
82 void print_contents_impl(); | 84 void print_contents_impl(); |
83 | 85 |
86 public: | 88 public: |
87 static bool is_initialized() { return _initialized; } | 89 static bool is_initialized() { return _initialized; } |
88 | 90 |
89 static void initialize(); | 91 static void initialize(); |
90 void init_shared_objects(); | 92 void init_shared_objects(); |
93 void remove_symbols(); | |
91 | 94 |
92 ciObjectFactory(Arena* arena, int expected_size); | 95 ciObjectFactory(Arena* arena, int expected_size); |
93 | 96 |
94 | |
95 // Get the ciObject corresponding to some oop. | 97 // Get the ciObject corresponding to some oop. |
96 ciObject* get(oop key); | 98 ciObject* get(oop key); |
99 | |
100 ciSymbol* get_symbol(Symbol* key); | |
97 | 101 |
98 // Get the ciSymbol corresponding to one of the vmSymbols. | 102 // Get the ciSymbol corresponding to one of the vmSymbols. |
99 static ciSymbol* vm_symbol_at(int index); | 103 static ciSymbol* vm_symbol_at(int index); |
100 | 104 |
101 // Get the ciMethod representing an unloaded/unfound method. | 105 // Get the ciMethod representing an unloaded/unfound method. |