diff src/share/vm/runtime/thread.hpp @ 1814:fd5d4527cdf5

6986270: guarantee(*bcp != Bytecodes::_monitorenter || exec_mode != Deoptimization::Unpack_exception) fails Summary: Propagate the compiler type of the deopting method to vframeArrayElement::unpack_on_stack() Reviewed-by: jrose, never
author iveresov
date Tue, 21 Sep 2010 13:38:35 -0700
parents f4f596978298
children 0715f0cf171d
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.hpp	Wed Sep 15 20:25:37 2010 -0700
+++ b/src/share/vm/runtime/thread.hpp	Tue Sep 21 13:38:35 2010 -0700
@@ -680,7 +680,7 @@
 
   intptr_t*      _must_deopt_id;                 // id of frame that needs to be deopted once we
                                                  // transition out of native
-
+  nmethod*       _deopt_nmethod;                 // nmethod that is currently being deoptimized
   vframeArray*  _vframe_array_head;              // Holds the heap of the active vframeArrays
   vframeArray*  _vframe_array_last;              // Holds last vFrameArray we popped
   // Because deoptimization is lazy we must save jvmti requests to set locals
@@ -1098,6 +1098,9 @@
   void     set_must_deopt_id(intptr_t* id)       { _must_deopt_id = id; }
   void     clear_must_deopt_id()                 { _must_deopt_id = NULL; }
 
+  void set_deopt_nmethod(nmethod* nm)            { _deopt_nmethod = nm;   }
+  nmethod* deopt_nmethod()                       { return _deopt_nmethod; }
+
   methodOop  callee_target() const               { return _callee_target; }
   void set_callee_target  (methodOop x)          { _callee_target   = x; }