hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 19266 bb0324cbe0aa
parent 18066 b4b1f65075e5
child 20053 a12bd7991794
equal deleted inserted replaced
19152:44fdfecd8f6c 19266:bb0324cbe0aa
  2555   InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass());
  2555   InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass());
  2556   jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset);
  2556   jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset);
  2557   *offset = value;
  2557   *offset = value;
  2558 }
  2558 }
  2559 
  2559 
       
  2560 // Support for java_lang_invoke_DirectMethodHandle
       
  2561 
       
  2562 int java_lang_invoke_DirectMethodHandle::_member_offset;
       
  2563 
       
  2564 oop java_lang_invoke_DirectMethodHandle::member(oop dmh) {
       
  2565   oop member_name = NULL;
       
  2566   bool is_dmh = dmh->is_oop() && java_lang_invoke_DirectMethodHandle::is_instance(dmh);
       
  2567   assert(is_dmh, "a DirectMethodHandle oop is expected");
       
  2568   if (is_dmh) {
       
  2569     member_name = dmh->obj_field(member_offset_in_bytes());
       
  2570   }
       
  2571   return member_name;
       
  2572 }
       
  2573 
       
  2574 void java_lang_invoke_DirectMethodHandle::compute_offsets() {
       
  2575   Klass* klass_oop = SystemDictionary::DirectMethodHandle_klass();
       
  2576   if (klass_oop != NULL && EnableInvokeDynamic) {
       
  2577     compute_offset(_member_offset, klass_oop, vmSymbols::member_name(), vmSymbols::java_lang_invoke_MemberName_signature());
       
  2578   }
       
  2579 }
  2560 
  2580 
  2561 // Support for java_lang_invoke_MethodHandle
  2581 // Support for java_lang_invoke_MethodHandle
  2562 
  2582 
  2563 int java_lang_invoke_MethodHandle::_type_offset;
  2583 int java_lang_invoke_MethodHandle::_type_offset;
  2564 int java_lang_invoke_MethodHandle::_form_offset;
  2584 int java_lang_invoke_MethodHandle::_form_offset;
  3203   java_lang_ClassLoader::compute_offsets();
  3223   java_lang_ClassLoader::compute_offsets();
  3204   java_lang_Thread::compute_offsets();
  3224   java_lang_Thread::compute_offsets();
  3205   java_lang_ThreadGroup::compute_offsets();
  3225   java_lang_ThreadGroup::compute_offsets();
  3206   if (EnableInvokeDynamic) {
  3226   if (EnableInvokeDynamic) {
  3207     java_lang_invoke_MethodHandle::compute_offsets();
  3227     java_lang_invoke_MethodHandle::compute_offsets();
       
  3228     java_lang_invoke_DirectMethodHandle::compute_offsets();
  3208     java_lang_invoke_MemberName::compute_offsets();
  3229     java_lang_invoke_MemberName::compute_offsets();
  3209     java_lang_invoke_LambdaForm::compute_offsets();
  3230     java_lang_invoke_LambdaForm::compute_offsets();
  3210     java_lang_invoke_MethodType::compute_offsets();
  3231     java_lang_invoke_MethodType::compute_offsets();
  3211     java_lang_invoke_CallSite::compute_offsets();
  3232     java_lang_invoke_CallSite::compute_offsets();
  3212   }
  3233   }