hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 10514 e229a19078cf
parent 10509 43d670e5701e
child 10540 92d59dba2407
child 10537 23539f11e110
equal deleted inserted replaced
10511:22b3580bd8bb 10514:e229a19078cf
  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