hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 8883 5569135acca3
parent 8728 3f1bcd33068e
child 8885 eed0ba1d011b
equal deleted inserted replaced
8882:f852635a6383 8883:5569135acca3
  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