mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-09 04:59:33 +00:00
8215500: ICRefillVerifierMark does not set the provided verfier as current
Reviewed-by: pliden, thartmann
This commit is contained in:
parent
205598c97f
commit
1cc5cf4c02
@ -53,29 +53,29 @@ ICRefillVerifier::ICRefillVerifier()
|
||||
_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;
|
||||
}
|
||||
|
||||
@ -231,7 +231,7 @@ Thread::Thread() {
|
||||
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;
|
||||
|
||||
@ -81,6 +81,7 @@ class jvmtiDeferredLocalVariableSet;
|
||||
|
||||
class GCTaskQueue;
|
||||
class ThreadClosure;
|
||||
class ICRefillVerifier;
|
||||
class IdealGraphPrinter;
|
||||
|
||||
class Metadata;
|
||||
@ -329,15 +330,15 @@ class Thread: public ThreadShadow {
|
||||
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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user