1.1 --- a/src/share/vm/runtime/frame.cpp Mon Jul 23 13:04:59 2012 -0700 1.2 +++ b/src/share/vm/runtime/frame.cpp Tue Jul 24 10:51:00 2012 -0700 1.3 @@ -170,11 +170,9 @@ 1.4 } 1.5 1.6 // type testers 1.7 -bool frame::is_ricochet_frame() const { 1.8 - RicochetBlob* rcb = SharedRuntime::ricochet_blob(); 1.9 - return (_cb == rcb && rcb != NULL && rcb->returns_to_bounce_addr(_pc)); 1.10 +bool frame::is_ignored_frame() const { 1.11 + return false; // FIXME: some LambdaForm frames should be ignored 1.12 } 1.13 - 1.14 bool frame::is_deoptimized_frame() const { 1.15 assert(_deopt_state != unknown, "not answerable"); 1.16 return _deopt_state == is_deoptimized; 1.17 @@ -348,17 +346,12 @@ 1.18 frame frame::real_sender(RegisterMap* map) const { 1.19 frame result = sender(map); 1.20 while (result.is_runtime_frame() || 1.21 - result.is_ricochet_frame()) { 1.22 + result.is_ignored_frame()) { 1.23 result = result.sender(map); 1.24 } 1.25 return result; 1.26 } 1.27 1.28 -frame frame::sender_for_ricochet_frame(RegisterMap* map) const { 1.29 - assert(is_ricochet_frame(), ""); 1.30 - return MethodHandles::ricochet_frame_sender(*this, map); 1.31 -} 1.32 - 1.33 // Note: called by profiler - NOT for current thread 1.34 frame frame::profile_find_Java_sender_frame(JavaThread *thread) { 1.35 // If we don't recognize this frame, walk back up the stack until we do 1.36 @@ -541,7 +534,6 @@ 1.37 const char* frame::print_name() const { 1.38 if (is_native_frame()) return "Native"; 1.39 if (is_interpreted_frame()) return "Interpreted"; 1.40 - if (is_ricochet_frame()) return "Ricochet"; 1.41 if (is_compiled_frame()) { 1.42 if (is_deoptimized_frame()) return "Deoptimized"; 1.43 return "Compiled"; 1.44 @@ -728,8 +720,6 @@ 1.45 st->print("v ~RuntimeStub::%s", ((RuntimeStub *)_cb)->name()); 1.46 } else if (_cb->is_deoptimization_stub()) { 1.47 st->print("v ~DeoptimizationBlob"); 1.48 - } else if (_cb->is_ricochet_stub()) { 1.49 - st->print("v ~RichochetBlob"); 1.50 } else if (_cb->is_exception_stub()) { 1.51 st->print("v ~ExceptionBlob"); 1.52 } else if (_cb->is_safepoint_stub()) { 1.53 @@ -993,9 +983,6 @@ 1.54 1.55 void frame::oops_code_blob_do(OopClosure* f, CodeBlobClosure* cf, const RegisterMap* reg_map) { 1.56 assert(_cb != NULL, "sanity check"); 1.57 - if (_cb == SharedRuntime::ricochet_blob()) { 1.58 - oops_ricochet_do(f, reg_map); 1.59 - } 1.60 if (_cb->oop_maps() != NULL) { 1.61 OopMapSet::oops_do(this, reg_map, f); 1.62 1.63 @@ -1014,11 +1001,6 @@ 1.64 cf->do_code_blob(_cb); 1.65 } 1.66 1.67 -void frame::oops_ricochet_do(OopClosure* f, const RegisterMap* map) { 1.68 - assert(is_ricochet_frame(), ""); 1.69 - MethodHandles::ricochet_frame_oops_do(*this, f, map); 1.70 -} 1.71 - 1.72 class CompiledArgumentOopFinder: public SignatureInfo { 1.73 protected: 1.74 OopClosure* _f; 1.75 @@ -1087,7 +1069,7 @@ 1.76 // First consult the ADLC on where it puts parameter 0 for this signature. 1.77 VMReg reg = SharedRuntime::name_for_receiver(); 1.78 oop r = *caller.oopmapreg_to_location(reg, reg_map); 1.79 - assert( Universe::heap()->is_in_or_null(r), "bad receiver" ); 1.80 + assert(Universe::heap()->is_in_or_null(r), err_msg("bad receiver: " INTPTR_FORMAT " (" INTX_FORMAT ")", (intptr_t) r, (intptr_t) r)); 1.81 return r; 1.82 } 1.83 1.84 @@ -1407,8 +1389,6 @@ 1.85 values.describe(-1, info_address, 1.86 FormatBuffer<1024>("#%d nmethod " INTPTR_FORMAT " for native method %s", frame_no, 1.87 nm, nm->method()->name_and_sig_as_C_string()), 2); 1.88 - } else if (is_ricochet_frame()) { 1.89 - values.describe(-1, info_address, err_msg("#%d ricochet frame", frame_no), 2); 1.90 } else { 1.91 // provide default info if not handled before 1.92 char *info = (char *) "special frame";