Mercurial > hg > graal-jvmci-8
comparison src/share/vm/ci/ciEnv.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 |
---|---|
77 bool _dtrace_alloc_probes; | 77 bool _dtrace_alloc_probes; |
78 | 78 |
79 // Distinguished instances of certain ciObjects.. | 79 // Distinguished instances of certain ciObjects.. |
80 static ciObject* _null_object_instance; | 80 static ciObject* _null_object_instance; |
81 static ciMethodKlass* _method_klass_instance; | 81 static ciMethodKlass* _method_klass_instance; |
82 static ciSymbolKlass* _symbol_klass_instance; | |
83 static ciKlassKlass* _klass_klass_instance; | 82 static ciKlassKlass* _klass_klass_instance; |
84 static ciInstanceKlassKlass* _instance_klass_klass_instance; | 83 static ciInstanceKlassKlass* _instance_klass_klass_instance; |
85 static ciTypeArrayKlassKlass* _type_array_klass_klass_instance; | 84 static ciTypeArrayKlassKlass* _type_array_klass_klass_instance; |
86 static ciObjArrayKlassKlass* _obj_array_klass_klass_instance; | 85 static ciObjArrayKlassKlass* _obj_array_klass_klass_instance; |
87 | 86 |
158 // Helper methods | 157 // Helper methods |
159 bool check_klass_accessibility(ciKlass* accessing_klass, | 158 bool check_klass_accessibility(ciKlass* accessing_klass, |
160 klassOop resolved_klassOop); | 159 klassOop resolved_klassOop); |
161 methodOop lookup_method(instanceKlass* accessor, | 160 methodOop lookup_method(instanceKlass* accessor, |
162 instanceKlass* holder, | 161 instanceKlass* holder, |
163 symbolOop name, | 162 Symbol* name, |
164 symbolOop sig, | 163 Symbol* sig, |
165 Bytecodes::Code bc); | 164 Bytecodes::Code bc); |
166 | 165 |
167 // Get a ciObject from the object factory. Ensures uniqueness | 166 // Get a ciObject from the object factory. Ensures uniqueness |
168 // of ciObjects. | 167 // of ciObjects. |
169 ciObject* get_object(oop o) { | 168 ciObject* get_object(oop o) { |
172 } else { | 171 } else { |
173 return _factory->get(o); | 172 return _factory->get(o); |
174 } | 173 } |
175 } | 174 } |
176 | 175 |
176 ciSymbol* get_symbol(Symbol* o) { | |
177 if (o == NULL) { | |
178 ShouldNotReachHere(); | |
179 return NULL; | |
180 } else { | |
181 return _factory->get_symbol(o); | |
182 } | |
183 } | |
184 | |
177 ciMethod* get_method_from_handle(jobject method); | 185 ciMethod* get_method_from_handle(jobject method); |
178 | 186 |
179 ciInstance* get_or_create_exception(jobject& handle, symbolHandle name); | 187 ciInstance* get_or_create_exception(jobject& handle, Symbol* name); |
180 | 188 |
181 // Get a ciMethod representing either an unfound method or | 189 // Get a ciMethod representing either an unfound method or |
182 // a method with an unloaded holder. Ensures uniqueness of | 190 // a method with an unloaded holder. Ensures uniqueness of |
183 // the result. | 191 // the result. |
184 ciMethod* get_unloaded_method(ciInstanceKlass* holder, | 192 ciMethod* get_unloaded_method(ciInstanceKlass* holder, |