Mercurial > hg > truffle
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. |