Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/callGenerator.cpp
          +++ new/src/share/vm/opto/callGenerator.cpp
↓ open down ↓ 730 lines elided ↑ open up ↑
 731  731      }
 732  732    }
 733  733    return NULL;
 734  734  }
 735  735  
 736  736  
 737  737  CallGenerator* CallGenerator::for_invokedynamic_inline(ciCallSite* call_site, JVMState* jvms,
 738  738                                                         ciMethod* caller, ciMethod* callee, ciCallProfile profile) {
 739  739    ciMethodHandle* method_handle = call_site->get_target();
 740  740  
      741 +  // Don't inline if there were already too many traps.
      742 +  if (call_site->too_many_traps()) {
      743 +    return NULL;
      744 +  }
      745 +
 741  746    // Set the callee to have access to the class and signature in the
 742  747    // MethodHandleCompiler.
 743  748    method_handle->set_callee(callee);
 744  749    method_handle->set_caller(caller);
 745  750    method_handle->set_call_profile(profile);
 746  751  
 747  752    // Get an adapter for the MethodHandle.
 748  753    ciMethod* target_method = method_handle->get_invokedynamic_adapter();
 749  754    if (target_method != NULL) {
 750  755      Compile *C = Compile::current();
↓ open down ↓ 348 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX