Mercurial > hg > truffle
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) |