comparison src/share/vm/oops/cpCache.hpp @ 12264:b2e698d2276c

8014013: CallInfo structure no longer accurately reports the result of a LinkResolver operation Summary: Enhance method resolution and resulting data structures, plus some refactoring. Reviewed-by: twisti, acorn, jrose
author drchase
date Fri, 13 Sep 2013 22:38:02 -0400
parents 23123fc6968a
children 41cb10cbfb3c
comparison
equal deleted inserted replaced
12261:2c98370f2611 12264:b2e698d2276c
217 bool is_final, // the field is final 217 bool is_final, // the field is final
218 bool is_volatile, // the field is volatile 218 bool is_volatile, // the field is volatile
219 Klass* root_klass // needed by the GC to dirty the klass 219 Klass* root_klass // needed by the GC to dirty the klass
220 ); 220 );
221 221
222 void set_method( // sets entry to resolved method entry 222 private:
223 void set_direct_or_vtable_call(
223 Bytecodes::Code invoke_code, // the bytecode used for invoking the method 224 Bytecodes::Code invoke_code, // the bytecode used for invoking the method
224 methodHandle method, // the method/prototype if any (NULL, otherwise) 225 methodHandle method, // the method/prototype if any (NULL, otherwise)
225 int vtable_index // the vtable index if any, else negative 226 int vtable_index // the vtable index if any, else negative
226 ); 227 );
227 228
228 void set_interface_call( 229 public:
229 methodHandle method, // Resolved method 230 void set_direct_call( // sets entry to exact concrete method entry
230 int index // Method index into interface 231 Bytecodes::Code invoke_code, // the bytecode used for invoking the method
232 methodHandle method // the method to call
233 );
234
235 void set_vtable_call( // sets entry to vtable index
236 Bytecodes::Code invoke_code, // the bytecode used for invoking the method
237 methodHandle method, // resolved method which declares the vtable index
238 int vtable_index // the vtable index
239 );
240
241 void set_itable_call(
242 Bytecodes::Code invoke_code, // the bytecode used; must be invokeinterface
243 methodHandle method, // the resolved interface method
244 int itable_index // index into itable for the method
231 ); 245 );
232 246
233 void set_method_handle( 247 void set_method_handle(
234 constantPoolHandle cpool, // holding constant pool (required for locking) 248 constantPoolHandle cpool, // holding constant pool (required for locking)
235 const CallInfo &call_info // Call link information 249 const CallInfo &call_info // Call link information