hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 2570 ecc7862946d4
parent 2534 08dac9ce0cd7
child 3600 27aa4477d039
equal deleted inserted replaced
2569:9e8daec25638 2570:ecc7862946d4
  2428   assert(mtform->klass() == SystemDictionary::MethodTypeForm_klass(), "MTForm only");
  2428   assert(mtform->klass() == SystemDictionary::MethodTypeForm_klass(), "MTForm only");
  2429   return mtform->obj_field(_erasedType_offset);
  2429   return mtform->obj_field(_erasedType_offset);
  2430 }
  2430 }
  2431 
  2431 
  2432 
  2432 
       
  2433 // Support for sun_dyn_CallSiteImpl
       
  2434 
       
  2435 int sun_dyn_CallSiteImpl::_type_offset;
       
  2436 int sun_dyn_CallSiteImpl::_target_offset;
       
  2437 int sun_dyn_CallSiteImpl::_vmmethod_offset;
       
  2438 
       
  2439 void sun_dyn_CallSiteImpl::compute_offsets() {
       
  2440   if (!EnableInvokeDynamic)  return;
       
  2441   klassOop k = SystemDictionary::CallSiteImpl_klass();
       
  2442   if (k != NULL) {
       
  2443     compute_offset(_type_offset,   k, vmSymbols::type_name(),   vmSymbols::java_dyn_MethodType_signature(), true);
       
  2444     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature(), true);
       
  2445     compute_offset(_vmmethod_offset, k, vmSymbols::vmmethod_name(), vmSymbols::object_signature(), true);
       
  2446   }
       
  2447 }
       
  2448 
       
  2449 oop sun_dyn_CallSiteImpl::type(oop site) {
       
  2450   return site->obj_field(_type_offset);
       
  2451 }
       
  2452 
       
  2453 oop sun_dyn_CallSiteImpl::target(oop site) {
       
  2454   return site->obj_field(_target_offset);
       
  2455 }
       
  2456 
       
  2457 void sun_dyn_CallSiteImpl::set_target(oop site, oop target) {
       
  2458   site->obj_field_put(_target_offset, target);
       
  2459 }
       
  2460 
       
  2461 oop sun_dyn_CallSiteImpl::vmmethod(oop site) {
       
  2462   return site->obj_field(_vmmethod_offset);
       
  2463 }
       
  2464 
       
  2465 void sun_dyn_CallSiteImpl::set_vmmethod(oop site, oop ref) {
       
  2466   site->obj_field_put(_vmmethod_offset, ref);
       
  2467 }
  2433 
  2468 
  2434 
  2469 
  2435 // Support for java_security_AccessControlContext
  2470 // Support for java_security_AccessControlContext
  2436 
  2471 
  2437 int java_security_AccessControlContext::_context_offset = 0;
  2472 int java_security_AccessControlContext::_context_offset = 0;
  2773     sun_dyn_BoundMethodHandle::compute_offsets();
  2808     sun_dyn_BoundMethodHandle::compute_offsets();
  2774     sun_dyn_AdapterMethodHandle::compute_offsets();
  2809     sun_dyn_AdapterMethodHandle::compute_offsets();
  2775     java_dyn_MethodType::compute_offsets();
  2810     java_dyn_MethodType::compute_offsets();
  2776     java_dyn_MethodTypeForm::compute_offsets();
  2811     java_dyn_MethodTypeForm::compute_offsets();
  2777   }
  2812   }
       
  2813   if (EnableInvokeDynamic) {
       
  2814     sun_dyn_CallSiteImpl::compute_offsets();
       
  2815   }
  2778   java_security_AccessControlContext::compute_offsets();
  2816   java_security_AccessControlContext::compute_offsets();
  2779   // Initialize reflection classes. The layouts of these classes
  2817   // Initialize reflection classes. The layouts of these classes
  2780   // changed with the new reflection implementation in JDK 1.4, and
  2818   // changed with the new reflection implementation in JDK 1.4, and
  2781   // since the Universe doesn't know what JDK version it is until this
  2819   // since the Universe doesn't know what JDK version it is until this
  2782   // point we defer computation of these offsets until now.
  2820   // point we defer computation of these offsets until now.