1.1 --- a/src/share/vm/opto/graphKit.cpp Mon Dec 17 11:00:22 2012 -0800 1.2 +++ b/src/share/vm/opto/graphKit.cpp Tue Dec 18 14:55:25 2012 +0100 1.3 @@ -1771,11 +1771,21 @@ 1.4 CallProjections callprojs; 1.5 call->extract_projections(&callprojs, true); 1.6 1.7 + Node* init_mem = call->in(TypeFunc::Memory); 1.8 + Node* final_mem = final_state->in(TypeFunc::Memory); 1.9 + Node* final_ctl = final_state->in(TypeFunc::Control); 1.10 + Node* final_io = final_state->in(TypeFunc::I_O); 1.11 + 1.12 // Replace all the old call edges with the edges from the inlining result 1.13 - C->gvn_replace_by(callprojs.fallthrough_catchproj, final_state->in(TypeFunc::Control)); 1.14 - C->gvn_replace_by(callprojs.fallthrough_memproj, final_state->in(TypeFunc::Memory)); 1.15 - C->gvn_replace_by(callprojs.fallthrough_ioproj, final_state->in(TypeFunc::I_O)); 1.16 - Node* final_mem = final_state->in(TypeFunc::Memory); 1.17 + if (callprojs.fallthrough_catchproj != NULL) { 1.18 + C->gvn_replace_by(callprojs.fallthrough_catchproj, final_ctl); 1.19 + } 1.20 + if (callprojs.fallthrough_memproj != NULL) { 1.21 + C->gvn_replace_by(callprojs.fallthrough_memproj, final_mem); 1.22 + } 1.23 + if (callprojs.fallthrough_ioproj != NULL) { 1.24 + C->gvn_replace_by(callprojs.fallthrough_ioproj, final_io); 1.25 + } 1.26 1.27 // Replace the result with the new result if it exists and is used 1.28 if (callprojs.resproj != NULL && result != NULL) {