comparison src/share/vm/oops/cpCache.hpp @ 6942:64672b22ef05

8001658: No need to pass resolved_references as argument to ConstantPoolCacheEntry::set_method_handle_common Reviewed-by: twisti Contributed-by: Bharadwaj Yadavalli <bharadwaj.yadavalli@oracle.com>
author twisti
date Fri, 02 Nov 2012 12:30:46 -0700
parents f6b0eb4e44cf
children 8d9fc28831cc
comparison
equal deleted inserted replaced
6931:ca8168203393 6942:64672b22ef05
115 // b2 bytecode. The value of _flags is shared for both types of entries. 115 // b2 bytecode. The value of _flags is shared for both types of entries.
116 // 116 //
117 // The fields are volatile so that they are stored in the order written in the 117 // The fields are volatile so that they are stored in the order written in the
118 // source code. The _indices field with the bytecode must be written last. 118 // source code. The _indices field with the bytecode must be written last.
119 119
120 class CallInfo;
121
120 class ConstantPoolCacheEntry VALUE_OBJ_CLASS_SPEC { 122 class ConstantPoolCacheEntry VALUE_OBJ_CLASS_SPEC {
121 friend class VMStructs; 123 friend class VMStructs;
122 friend class constantPoolCacheKlass; 124 friend class constantPoolCacheKlass;
123 friend class ConstantPool; 125 friend class ConstantPool;
124 friend class InterpreterRuntime; 126 friend class InterpreterRuntime;
221 int index // Method index into interface 223 int index // Method index into interface
222 ); 224 );
223 225
224 void set_method_handle( 226 void set_method_handle(
225 constantPoolHandle cpool, // holding constant pool (required for locking) 227 constantPoolHandle cpool, // holding constant pool (required for locking)
226 methodHandle method, // adapter for invokeExact, etc. 228 const CallInfo &call_info // Call link information
227 Handle appendix, // stored in refs[f2+0]; could be a java.lang.invoke.MethodType
228 Handle method_type, // stored in refs[f2+1]; is a java.lang.invoke.MethodType
229 objArrayHandle resolved_references
230 ); 229 );
231 230
232 void set_dynamic_call( 231 void set_dynamic_call(
233 constantPoolHandle cpool, // holding constant pool (required for locking) 232 constantPoolHandle cpool, // holding constant pool (required for locking)
234 methodHandle method, // adapter for this call site 233 const CallInfo &call_info // Call link information
235 Handle appendix, // stored in refs[f2+0]; could be a java.lang.invoke.CallSite
236 Handle method_type, // stored in refs[f2+1]; is a java.lang.invoke.MethodType
237 objArrayHandle resolved_references
238 ); 234 );
239 235
240 // Common code for invokedynamic and MH invocations. 236 // Common code for invokedynamic and MH invocations.
241 237
242 // The "appendix" is an optional call-site-specific parameter which is 238 // The "appendix" is an optional call-site-specific parameter which is
253 // resolution logic needs to make slightly different assessments about the 249 // resolution logic needs to make slightly different assessments about the
254 // number and types of arguments. 250 // number and types of arguments.
255 void set_method_handle_common( 251 void set_method_handle_common(
256 constantPoolHandle cpool, // holding constant pool (required for locking) 252 constantPoolHandle cpool, // holding constant pool (required for locking)
257 Bytecodes::Code invoke_code, // _invokehandle or _invokedynamic 253 Bytecodes::Code invoke_code, // _invokehandle or _invokedynamic
258 methodHandle adapter, // invoker method (f1) 254 const CallInfo &call_info // Call link information
259 Handle appendix, // appendix such as CallSite, MethodType, etc. (refs[f2+0])
260 Handle method_type, // MethodType (refs[f2+1])
261 objArrayHandle resolved_references
262 ); 255 );
263 256
264 // invokedynamic and invokehandle call sites have two entries in the 257 // invokedynamic and invokehandle call sites have two entries in the
265 // resolved references array: 258 // resolved references array:
266 // appendix (at index+0) 259 // appendix (at index+0)