2322 int java_lang_invoke_BoundMethodHandle::_argument_offset; |
2322 int java_lang_invoke_BoundMethodHandle::_argument_offset; |
2323 int java_lang_invoke_BoundMethodHandle::_vmargslot_offset; |
2323 int java_lang_invoke_BoundMethodHandle::_vmargslot_offset; |
2324 |
2324 |
2325 int java_lang_invoke_AdapterMethodHandle::_conversion_offset; |
2325 int java_lang_invoke_AdapterMethodHandle::_conversion_offset; |
2326 |
2326 |
|
2327 int java_lang_invoke_CountingMethodHandle::_vmcount_offset; |
|
2328 |
2327 void java_lang_invoke_MethodHandle::compute_offsets() { |
2329 void java_lang_invoke_MethodHandle::compute_offsets() { |
2328 klassOop k = SystemDictionary::MethodHandle_klass(); |
2330 klassOop k = SystemDictionary::MethodHandle_klass(); |
2329 if (k != NULL && EnableInvokeDynamic) { |
2331 if (k != NULL && EnableInvokeDynamic) { |
2330 bool allow_super = false; |
2332 bool allow_super = false; |
2331 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); |
2333 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); |
2368 void java_lang_invoke_AdapterMethodHandle::compute_offsets() { |
2370 void java_lang_invoke_AdapterMethodHandle::compute_offsets() { |
2369 klassOop k = SystemDictionary::AdapterMethodHandle_klass(); |
2371 klassOop k = SystemDictionary::AdapterMethodHandle_klass(); |
2370 if (k != NULL && EnableInvokeDynamic) { |
2372 if (k != NULL && EnableInvokeDynamic) { |
2371 compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true); |
2373 compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true); |
2372 } |
2374 } |
|
2375 } |
|
2376 |
|
2377 void java_lang_invoke_CountingMethodHandle::compute_offsets() { |
|
2378 klassOop k = SystemDictionary::CountingMethodHandle_klass(); |
|
2379 if (k != NULL && EnableInvokeDynamic) { |
|
2380 compute_offset(_vmcount_offset, k, vmSymbols::vmcount_name(), vmSymbols::int_signature(), true); |
|
2381 } |
|
2382 } |
|
2383 |
|
2384 int java_lang_invoke_CountingMethodHandle::vmcount(oop mh) { |
|
2385 assert(is_instance(mh), "CMH only"); |
|
2386 return mh->int_field(_vmcount_offset); |
|
2387 } |
|
2388 |
|
2389 void java_lang_invoke_CountingMethodHandle::set_vmcount(oop mh, int count) { |
|
2390 assert(is_instance(mh), "CMH only"); |
|
2391 mh->int_field_put(_vmcount_offset, count); |
2373 } |
2392 } |
2374 |
2393 |
2375 oop java_lang_invoke_MethodHandle::type(oop mh) { |
2394 oop java_lang_invoke_MethodHandle::type(oop mh) { |
2376 return mh->obj_field(_type_offset); |
2395 return mh->obj_field(_type_offset); |
2377 } |
2396 } |
3041 java_lang_invoke_BoundMethodHandle::compute_offsets(); |
3060 java_lang_invoke_BoundMethodHandle::compute_offsets(); |
3042 java_lang_invoke_AdapterMethodHandle::compute_offsets(); |
3061 java_lang_invoke_AdapterMethodHandle::compute_offsets(); |
3043 java_lang_invoke_MethodType::compute_offsets(); |
3062 java_lang_invoke_MethodType::compute_offsets(); |
3044 java_lang_invoke_MethodTypeForm::compute_offsets(); |
3063 java_lang_invoke_MethodTypeForm::compute_offsets(); |
3045 java_lang_invoke_CallSite::compute_offsets(); |
3064 java_lang_invoke_CallSite::compute_offsets(); |
|
3065 java_lang_invoke_CountingMethodHandle::compute_offsets(); |
3046 } |
3066 } |
3047 java_security_AccessControlContext::compute_offsets(); |
3067 java_security_AccessControlContext::compute_offsets(); |
3048 // Initialize reflection classes. The layouts of these classes |
3068 // Initialize reflection classes. The layouts of these classes |
3049 // changed with the new reflection implementation in JDK 1.4, and |
3069 // changed with the new reflection implementation in JDK 1.4, and |
3050 // since the Universe doesn't know what JDK version it is until this |
3070 // since the Universe doesn't know what JDK version it is until this |