hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 5420 586d3988e72b
parent 4886 a2f9a66475b3
child 5547 f4b087cbb361
equal deleted inserted replaced
5419:f2e8cc8c12ea 5420:586d3988e72b
  2444 }
  2444 }
  2445 
  2445 
  2446 
  2446 
  2447 // Support for java_dyn_CallSite
  2447 // Support for java_dyn_CallSite
  2448 
  2448 
  2449 int java_dyn_CallSite::_type_offset;
       
  2450 int java_dyn_CallSite::_target_offset;
  2449 int java_dyn_CallSite::_target_offset;
  2451 int java_dyn_CallSite::_vmmethod_offset;
  2450 int java_dyn_CallSite::_caller_method_offset;
       
  2451 int java_dyn_CallSite::_caller_bci_offset;
  2452 
  2452 
  2453 void java_dyn_CallSite::compute_offsets() {
  2453 void java_dyn_CallSite::compute_offsets() {
  2454   if (!EnableInvokeDynamic)  return;
  2454   if (!EnableInvokeDynamic)  return;
  2455   klassOop k = SystemDictionary::CallSite_klass();
  2455   klassOop k = SystemDictionary::CallSite_klass();
  2456   if (k != NULL) {
  2456   if (k != NULL) {
  2457     compute_offset(_type_offset,   k, vmSymbols::type_name(),   vmSymbols::java_dyn_MethodType_signature(), true);
  2457     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature());
  2458     compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature(), true);
  2458     compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::sun_dyn_MemberName_signature());
  2459     compute_offset(_vmmethod_offset, k, vmSymbols::vmmethod_name(), vmSymbols::object_signature(), true);
  2459     compute_offset(_caller_bci_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature());
  2460   }
  2460   }
  2461 }
       
  2462 
       
  2463 oop java_dyn_CallSite::type(oop site) {
       
  2464   return site->obj_field(_type_offset);
       
  2465 }
  2461 }
  2466 
  2462 
  2467 oop java_dyn_CallSite::target(oop site) {
  2463 oop java_dyn_CallSite::target(oop site) {
  2468   return site->obj_field(_target_offset);
  2464   return site->obj_field(_target_offset);
  2469 }
  2465 }
  2470 
  2466 
  2471 void java_dyn_CallSite::set_target(oop site, oop target) {
  2467 void java_dyn_CallSite::set_target(oop site, oop target) {
  2472   site->obj_field_put(_target_offset, target);
  2468   site->obj_field_put(_target_offset, target);
  2473 }
  2469 }
  2474 
  2470 
  2475 oop java_dyn_CallSite::vmmethod(oop site) {
  2471 oop java_dyn_CallSite::caller_method(oop site) {
  2476   return site->obj_field(_vmmethod_offset);
  2472   return site->obj_field(_caller_method_offset);
  2477 }
  2473 }
  2478 
  2474 
  2479 void java_dyn_CallSite::set_vmmethod(oop site, oop ref) {
  2475 void java_dyn_CallSite::set_caller_method(oop site, oop ref) {
  2480   site->obj_field_put(_vmmethod_offset, ref);
  2476   site->obj_field_put(_caller_method_offset, ref);
       
  2477 }
       
  2478 
       
  2479 jint java_dyn_CallSite::caller_bci(oop site) {
       
  2480   return site->int_field(_caller_bci_offset);
       
  2481 }
       
  2482 
       
  2483 void java_dyn_CallSite::set_caller_bci(oop site, jint bci) {
       
  2484   site->int_field_put(_caller_bci_offset, bci);
  2481 }
  2485 }
  2482 
  2486 
  2483 
  2487 
  2484 // Support for java_security_AccessControlContext
  2488 // Support for java_security_AccessControlContext
  2485 
  2489