comparison src/share/vm/classfile/javaClasses.cpp @ 12039:3cce976666d9

Merge hs25-b46
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 10 Oct 2013 14:20:04 +0200
parents 6b0fd0964b87 ca0165daa6ec
children cefad50507d8
comparison
equal deleted inserted replaced
11958:a0f5be106e67 12039:3cce976666d9
2561 InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass()); 2561 InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass());
2562 jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset); 2562 jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset);
2563 *offset = value; 2563 *offset = value;
2564 } 2564 }
2565 2565
2566 // Support for java_lang_invoke_DirectMethodHandle
2567
2568 int java_lang_invoke_DirectMethodHandle::_member_offset;
2569
2570 oop java_lang_invoke_DirectMethodHandle::member(oop dmh) {
2571 oop member_name = NULL;
2572 bool is_dmh = dmh->is_oop() && java_lang_invoke_DirectMethodHandle::is_instance(dmh);
2573 assert(is_dmh, "a DirectMethodHandle oop is expected");
2574 if (is_dmh) {
2575 member_name = dmh->obj_field(member_offset_in_bytes());
2576 }
2577 return member_name;
2578 }
2579
2580 void java_lang_invoke_DirectMethodHandle::compute_offsets() {
2581 Klass* klass_oop = SystemDictionary::DirectMethodHandle_klass();
2582 if (klass_oop != NULL && EnableInvokeDynamic) {
2583 compute_offset(_member_offset, klass_oop, vmSymbols::member_name(), vmSymbols::java_lang_invoke_MemberName_signature());
2584 }
2585 }
2566 2586
2567 // Support for java_lang_invoke_MethodHandle 2587 // Support for java_lang_invoke_MethodHandle
2568 2588
2569 int java_lang_invoke_MethodHandle::_type_offset; 2589 int java_lang_invoke_MethodHandle::_type_offset;
2570 int java_lang_invoke_MethodHandle::_form_offset; 2590 int java_lang_invoke_MethodHandle::_form_offset;
3212 java_lang_ClassLoader::compute_offsets(); 3232 java_lang_ClassLoader::compute_offsets();
3213 java_lang_Thread::compute_offsets(); 3233 java_lang_Thread::compute_offsets();
3214 java_lang_ThreadGroup::compute_offsets(); 3234 java_lang_ThreadGroup::compute_offsets();
3215 if (EnableInvokeDynamic) { 3235 if (EnableInvokeDynamic) {
3216 java_lang_invoke_MethodHandle::compute_offsets(); 3236 java_lang_invoke_MethodHandle::compute_offsets();
3237 java_lang_invoke_DirectMethodHandle::compute_offsets();
3217 java_lang_invoke_MemberName::compute_offsets(); 3238 java_lang_invoke_MemberName::compute_offsets();
3218 java_lang_invoke_LambdaForm::compute_offsets(); 3239 java_lang_invoke_LambdaForm::compute_offsets();
3219 java_lang_invoke_MethodType::compute_offsets(); 3240 java_lang_invoke_MethodType::compute_offsets();
3220 java_lang_invoke_CallSite::compute_offsets(); 3241 java_lang_invoke_CallSite::compute_offsets();
3221 } 3242 }