8046226: assert(_thread == Thread::current()) failed: thread must be current w/ -XX:+TraceDeoptimization -XX:+Verbose

Reviewed-by: twisti, dcubed, fparain
This commit is contained in:
Vladimir Ivanov 2014-06-09 11:49:02 +00:00
parent f05da48390
commit 075ea25462

View file

@ -274,7 +274,8 @@ StackValueCollection* interpretedVFrame::locals() const {
// Get oopmap describing oops and int for current bci
InterpreterOopMap oop_mask;
if (TraceDeoptimization && Verbose) {
methodHandle m_h(thread(), method());
// need the current JavaThread and not thread()
methodHandle m_h(Thread::current(), method());
OopMapCache::compute_one_oop_map(m_h, bci(), &oop_mask);
} else {
method()->mask_for(bci(), &oop_mask);
@ -335,7 +336,8 @@ StackValueCollection* interpretedVFrame::expressions() const {
if (!method()->is_native()) {
// Get oopmap describing oops and int for current bci
if (TraceDeoptimization && Verbose) {
methodHandle m_h(method());
// need the current JavaThread and not thread()
methodHandle m_h(Thread::current(), method());
OopMapCache::compute_one_oop_map(m_h, bci(), &oop_mask);
} else {
method()->mask_for(bci(), &oop_mask);