changeset 6561:c9764091440d

8046226: assert(_thread == Thread::current()) failed: thread must be current w/ -XX:+TraceDeoptimization -XX:+Verbose Reviewed-by: twisti, dcubed, fparain
author vlivanov
date Mon, 09 Jun 2014 11:49:02 +0000
parents 68d348f8d4c1
children 3cb509208318
files src/share/vm/runtime/vframe.cpp
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/runtime/vframe.cpp	Fri Jun 06 13:31:55 2014 -0700
+++ b/src/share/vm/runtime/vframe.cpp	Mon Jun 09 11:49:02 2014 +0000
@@ -274,7 +274,8 @@
   // 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 @@
   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);