2320 |
2320 |
2321 int java_lang_invoke_AdapterMethodHandle::_conversion_offset; |
2321 int java_lang_invoke_AdapterMethodHandle::_conversion_offset; |
2322 |
2322 |
2323 void java_lang_invoke_MethodHandle::compute_offsets() { |
2323 void java_lang_invoke_MethodHandle::compute_offsets() { |
2324 klassOop k = SystemDictionary::MethodHandle_klass(); |
2324 klassOop k = SystemDictionary::MethodHandle_klass(); |
2325 if (k != NULL && EnableMethodHandles) { |
2325 if (k != NULL && EnableInvokeDynamic) { |
2326 bool allow_super = false; |
2326 bool allow_super = false; |
2327 if (AllowTransitionalJSR292) allow_super = true; // temporary, to access java.dyn.MethodHandleImpl |
2327 if (AllowTransitionalJSR292) allow_super = true; // temporary, to access java.dyn.MethodHandleImpl |
2328 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); |
2328 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); |
2329 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature(), allow_super); |
2329 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature(), allow_super); |
2330 compute_offset(_vmentry_offset, k, vmSymbols::vmentry_name(), vmSymbols::machine_word_signature(), allow_super); |
2330 compute_offset(_vmentry_offset, k, vmSymbols::vmentry_name(), vmSymbols::machine_word_signature(), allow_super); |
2335 } |
2335 } |
2336 } |
2336 } |
2337 |
2337 |
2338 void java_lang_invoke_MemberName::compute_offsets() { |
2338 void java_lang_invoke_MemberName::compute_offsets() { |
2339 klassOop k = SystemDictionary::MemberName_klass(); |
2339 klassOop k = SystemDictionary::MemberName_klass(); |
2340 if (k != NULL && EnableMethodHandles) { |
2340 if (k != NULL && EnableInvokeDynamic) { |
2341 compute_offset(_clazz_offset, k, vmSymbols::clazz_name(), vmSymbols::class_signature()); |
2341 compute_offset(_clazz_offset, k, vmSymbols::clazz_name(), vmSymbols::class_signature()); |
2342 compute_offset(_name_offset, k, vmSymbols::name_name(), vmSymbols::string_signature()); |
2342 compute_offset(_name_offset, k, vmSymbols::name_name(), vmSymbols::string_signature()); |
2343 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::object_signature()); |
2343 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::object_signature()); |
2344 compute_offset(_flags_offset, k, vmSymbols::flags_name(), vmSymbols::int_signature()); |
2344 compute_offset(_flags_offset, k, vmSymbols::flags_name(), vmSymbols::int_signature()); |
2345 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature()); |
2345 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature()); |
2347 } |
2347 } |
2348 } |
2348 } |
2349 |
2349 |
2350 void java_lang_invoke_DirectMethodHandle::compute_offsets() { |
2350 void java_lang_invoke_DirectMethodHandle::compute_offsets() { |
2351 klassOop k = SystemDictionary::DirectMethodHandle_klass(); |
2351 klassOop k = SystemDictionary::DirectMethodHandle_klass(); |
2352 if (k != NULL && EnableMethodHandles) { |
2352 if (k != NULL && EnableInvokeDynamic) { |
2353 compute_offset(_vmindex_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature(), true); |
2353 compute_offset(_vmindex_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature(), true); |
2354 } |
2354 } |
2355 } |
2355 } |
2356 |
2356 |
2357 void java_lang_invoke_BoundMethodHandle::compute_offsets() { |
2357 void java_lang_invoke_BoundMethodHandle::compute_offsets() { |
2358 klassOop k = SystemDictionary::BoundMethodHandle_klass(); |
2358 klassOop k = SystemDictionary::BoundMethodHandle_klass(); |
2359 if (k != NULL && EnableMethodHandles) { |
2359 if (k != NULL && EnableInvokeDynamic) { |
2360 compute_offset(_vmargslot_offset, k, vmSymbols::vmargslot_name(), vmSymbols::int_signature(), true); |
2360 compute_offset(_vmargslot_offset, k, vmSymbols::vmargslot_name(), vmSymbols::int_signature(), true); |
2361 compute_offset(_argument_offset, k, vmSymbols::argument_name(), vmSymbols::object_signature(), true); |
2361 compute_offset(_argument_offset, k, vmSymbols::argument_name(), vmSymbols::object_signature(), true); |
2362 } |
2362 } |
2363 } |
2363 } |
2364 |
2364 |
2365 void java_lang_invoke_AdapterMethodHandle::compute_offsets() { |
2365 void java_lang_invoke_AdapterMethodHandle::compute_offsets() { |
2366 klassOop k = SystemDictionary::AdapterMethodHandle_klass(); |
2366 klassOop k = SystemDictionary::AdapterMethodHandle_klass(); |
2367 if (k != NULL && EnableMethodHandles) { |
2367 if (k != NULL && EnableInvokeDynamic) { |
2368 compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true); |
2368 compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true); |
2369 } |
2369 } |
2370 } |
2370 } |
2371 |
2371 |
2372 oop java_lang_invoke_MethodHandle::type(oop mh) { |
2372 oop java_lang_invoke_MethodHandle::type(oop mh) { |
2980 void JavaClasses::compute_offsets() { |
2980 void JavaClasses::compute_offsets() { |
2981 |
2981 |
2982 java_lang_Class::compute_offsets(); |
2982 java_lang_Class::compute_offsets(); |
2983 java_lang_Thread::compute_offsets(); |
2983 java_lang_Thread::compute_offsets(); |
2984 java_lang_ThreadGroup::compute_offsets(); |
2984 java_lang_ThreadGroup::compute_offsets(); |
2985 if (EnableMethodHandles) { |
2985 if (EnableInvokeDynamic) { |
2986 java_lang_invoke_MethodHandle::compute_offsets(); |
2986 java_lang_invoke_MethodHandle::compute_offsets(); |
2987 java_lang_invoke_MemberName::compute_offsets(); |
2987 java_lang_invoke_MemberName::compute_offsets(); |
2988 java_lang_invoke_DirectMethodHandle::compute_offsets(); |
2988 java_lang_invoke_DirectMethodHandle::compute_offsets(); |
2989 java_lang_invoke_BoundMethodHandle::compute_offsets(); |
2989 java_lang_invoke_BoundMethodHandle::compute_offsets(); |
2990 java_lang_invoke_AdapterMethodHandle::compute_offsets(); |
2990 java_lang_invoke_AdapterMethodHandle::compute_offsets(); |
2991 java_lang_invoke_MethodType::compute_offsets(); |
2991 java_lang_invoke_MethodType::compute_offsets(); |
2992 java_lang_invoke_MethodTypeForm::compute_offsets(); |
2992 java_lang_invoke_MethodTypeForm::compute_offsets(); |
2993 } |
|
2994 if (EnableInvokeDynamic) { |
|
2995 java_lang_invoke_CallSite::compute_offsets(); |
2993 java_lang_invoke_CallSite::compute_offsets(); |
2996 } |
2994 } |
2997 java_security_AccessControlContext::compute_offsets(); |
2995 java_security_AccessControlContext::compute_offsets(); |
2998 // Initialize reflection classes. The layouts of these classes |
2996 // Initialize reflection classes. The layouts of these classes |
2999 // changed with the new reflection implementation in JDK 1.4, and |
2997 // changed with the new reflection implementation in JDK 1.4, and |