8215500: ICRefillVerifierMark does not set the provided verfier as current
Reviewed-by: pliden, thartmann
--- a/src/hotspot/share/code/icBuffer.cpp Thu Dec 20 02:54:16 2018 +0100
+++ b/src/hotspot/share/code/icBuffer.cpp Thu Dec 20 10:41:45 2018 +0100
@@ -53,29 +53,29 @@
_refill_remembered(false)
{
Thread* thread = Thread::current();
- assert(thread->missed_ic_stub_refill_mark() == NULL, "nesting not supported");
- thread->set_missed_ic_stub_refill_mark(this);
+ assert(thread->missed_ic_stub_refill_verifier() == NULL, "nesting not supported");
+ thread->set_missed_ic_stub_refill_verifier(this);
}
ICRefillVerifier::~ICRefillVerifier() {
assert(!_refill_requested || _refill_remembered,
"Forgot to refill IC stubs after failed IC transition");
- Thread::current()->set_missed_ic_stub_refill_mark(NULL);
+ Thread::current()->set_missed_ic_stub_refill_verifier(NULL);
}
ICRefillVerifierMark::ICRefillVerifierMark(ICRefillVerifier* verifier) {
Thread* thread = Thread::current();
- assert(thread->missed_ic_stub_refill_mark() == NULL, "nesting not supported");
- thread->set_missed_ic_stub_refill_mark(this);
+ assert(thread->missed_ic_stub_refill_verifier() == NULL, "nesting not supported");
+ thread->set_missed_ic_stub_refill_verifier(verifier);
}
ICRefillVerifierMark::~ICRefillVerifierMark() {
- Thread::current()->set_missed_ic_stub_refill_mark(NULL);
+ Thread::current()->set_missed_ic_stub_refill_verifier(NULL);
}
static ICRefillVerifier* current_ic_refill_verifier() {
Thread* current = Thread::current();
- ICRefillVerifier* verifier = reinterpret_cast<ICRefillVerifier*>(current->missed_ic_stub_refill_mark());
+ ICRefillVerifier* verifier = current->missed_ic_stub_refill_verifier();
assert(verifier != NULL, "need a verifier for safety");
return verifier;
}
--- a/src/hotspot/share/runtime/thread.cpp Thu Dec 20 02:54:16 2018 +0100
+++ b/src/hotspot/share/runtime/thread.cpp Thu Dec 20 10:41:45 2018 +0100
@@ -231,7 +231,7 @@
set_active_handles(NULL);
set_free_handle_block(NULL);
set_last_handle_mark(NULL);
- DEBUG_ONLY(_missed_ic_stub_refill_mark = NULL);
+ DEBUG_ONLY(_missed_ic_stub_refill_verifier = NULL);
// This initial value ==> never claimed.
_oops_do_parity = 0;
--- a/src/hotspot/share/runtime/thread.hpp Thu Dec 20 02:54:16 2018 +0100
+++ b/src/hotspot/share/runtime/thread.hpp Thu Dec 20 10:41:45 2018 +0100
@@ -81,6 +81,7 @@
class GCTaskQueue;
class ThreadClosure;
+class ICRefillVerifier;
class IdealGraphPrinter;
class Metadata;
@@ -329,15 +330,15 @@
private:
#ifdef ASSERT
- void* _missed_ic_stub_refill_mark;
+ ICRefillVerifier* _missed_ic_stub_refill_verifier;
public:
- void* missed_ic_stub_refill_mark() {
- return _missed_ic_stub_refill_mark;
+ ICRefillVerifier* missed_ic_stub_refill_verifier() {
+ return _missed_ic_stub_refill_verifier;
}
- void set_missed_ic_stub_refill_mark(void* mark) {
- _missed_ic_stub_refill_mark = mark;
+ void set_missed_ic_stub_refill_verifier(ICRefillVerifier* verifier) {
+ _missed_ic_stub_refill_verifier = verifier;
}
#endif