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,