8028107: Kitchensink crashed with EAV

Check the state of caller and callee nmethods and skip call site patching if any of them is not alive

Reviewed-by: jrose, twisti
This commit is contained in:
Vladimir Kozlov 2013-12-06 12:11:51 -08:00
parent 0454a45a80
commit f3fc753f26
4 changed files with 40 additions and 21 deletions

View file

@ -418,7 +418,7 @@ void CompiledIC::compute_monomorphic_entry(methodHandle method,
TRAPS) {
nmethod* method_code = method->code();
address entry = NULL;
if (method_code != NULL) {
if (method_code != NULL && method_code->is_in_use()) {
// Call to compiled code
if (static_bound || is_optimized) {
entry = method_code->verified_entry_point();
@ -545,7 +545,7 @@ void CompiledStaticCall::set(const StaticCallInfo& info) {
void CompiledStaticCall::compute_entry(methodHandle m, StaticCallInfo& info) {
nmethod* m_code = m->code();
info._callee = m;
if (m_code != NULL) {
if (m_code != NULL && m_code->is_in_use()) {
info._to_interpreter = false;
info._entry = m_code->verified_entry_point();
} else {