diff --git a/src/hotspot/share/code/compiledIC.hpp b/src/hotspot/share/code/compiledIC.hpp index 08b2a6e..803b6b1 100644 --- a/src/hotspot/share/code/compiledIC.hpp +++ b/src/hotspot/share/code/compiledIC.hpp @@ -28,6 +28,7 @@ #include "code/nativeInst.hpp" #include "interpreter/linkResolver.hpp" #include "oops/compiledICHolder.hpp" +#include "runtime/safepointVerifiers.hpp" //----------------------------------------------------------------------------- // The CompiledIC represents a compiled inline cache. @@ -67,6 +68,7 @@ class CompiledICLocker: public StackObj { CompiledMethod* _method; CompiledICProtectionBehaviour* _behaviour; bool _locked; + NoSafepointVerifier _nsv; public: CompiledICLocker(CompiledMethod* method); @@ -277,8 +279,8 @@ class CompiledIC: public ResourceObj { void clear_ic_stub(); // Returns true if successful and false otherwise. The call can fail if memory - // allocation in the code cache fails. - bool set_to_megamorphic(CallInfo* call_info, Bytecodes::Code bytecode, TRAPS); + // allocation in the code cache fails, or ic stub refill is required. + bool set_to_megamorphic(CallInfo* call_info, Bytecodes::Code bytecode, bool& needs_ic_stub_refill, TRAPS); static void compute_monomorphic_entry(const methodHandle& method, Klass* receiver_klass, bool is_optimized, bool static_bound, bool caller_is_nmethod,