comparison src/share/vm/opto/callGenerator.cpp @ 6042:847da049d62f

7162094: LateInlineCallGenerator::do_late_inline crashed on uninitialized _call_node Reviewed-by: never, twisti Contributed-by: nils.eliasson@oracle.com
author never
date Tue, 17 Apr 2012 11:04:22 -0700
parents a04a201f0f5a
children 765ee2d1674b
comparison
equal deleted inserted replaced
6041:3576af4cb939 6042:847da049d62f
135 if (kit.C->log() != NULL) { 135 if (kit.C->log() != NULL) {
136 kit.C->log()->elem("direct_call bci='%d'", jvms->bci()); 136 kit.C->log()->elem("direct_call bci='%d'", jvms->bci());
137 } 137 }
138 138
139 CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), target, method(), kit.bci()); 139 CallStaticJavaNode *call = new (kit.C, tf()->domain()->cnt()) CallStaticJavaNode(tf(), target, method(), kit.bci());
140 _call_node = call; // Save the call node in case we need it later
140 if (!is_static) { 141 if (!is_static) {
141 // Make an explicit receiver null_check as part of this call. 142 // Make an explicit receiver null_check as part of this call.
142 // Since we share a map with the caller, his JVMS gets adjusted. 143 // Since we share a map with the caller, his JVMS gets adjusted.
143 kit.null_check_receiver(method()); 144 kit.null_check_receiver(method());
144 if (kit.stopped()) { 145 if (kit.stopped()) {
153 } 154 }
154 kit.set_arguments_for_java_call(call); 155 kit.set_arguments_for_java_call(call);
155 kit.set_edges_for_java_call(call, false, _separate_io_proj); 156 kit.set_edges_for_java_call(call, false, _separate_io_proj);
156 Node* ret = kit.set_results_for_java_call(call, _separate_io_proj); 157 Node* ret = kit.set_results_for_java_call(call, _separate_io_proj);
157 kit.push_node(method()->return_type()->basic_type(), ret); 158 kit.push_node(method()->return_type()->basic_type(), ret);
158 _call_node = call; // Save the call node in case we need it later
159 return kit.transfer_exceptions_into_jvms(); 159 return kit.transfer_exceptions_into_jvms();
160 } 160 }
161 161
162 //---------------------------DynamicCallGenerator----------------------------- 162 //---------------------------DynamicCallGenerator-----------------------------
163 // Internal class which handles all out-of-line invokedynamic calls. 163 // Internal class which handles all out-of-line invokedynamic calls.