diff --git a/src/hotspot/share/runtime/sharedRuntime.cpp b/src/hotspot/share/runtime/sharedRuntime.cpp index 8bf1b9a..279b02e 100644 --- a/src/hotspot/share/runtime/sharedRuntime.cpp +++ b/src/hotspot/share/runtime/sharedRuntime.cpp @@ -1760,11 +1760,15 @@ methodHandle SharedRuntime::reresolve_call_site(JavaThread *thread, TRAPS) { CompiledICLocker ml(caller_nm); if (is_static_call) { CompiledStaticCall* ssc = caller_nm->compiledStaticCall_at(call_addr); - ssc->set_to_clean(); + if (!ssc->is_clean()) { + ssc->set_to_clean(); + } } else { // compiled, dispatched call (which used to call an interpreted method) CompiledIC* inline_cache = CompiledIC_at(caller_nm, call_addr); - inline_cache->set_to_clean(); + if (!inline_cache->is_clean()) { + inline_cache->set_to_clean(); + } } } }