Mercurial > hg > truffle
diff src/share/vm/runtime/vframeArray.cpp @ 4678:a03f3fd16b22
Fix reexecute boolean in HotSpot debug information. Introduce "duringCall" flag in FrameState that indicates that the bci of the frame state denotes an invoke that should *not* be reexecuted.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 23 Feb 2012 21:43:59 +0100 |
parents | 3dbcd1013cc8 |
children | 07bcee8b70a4 |
line wrap: on
line diff
--- a/src/share/vm/runtime/vframeArray.cpp Thu Feb 23 12:06:39 2012 +0100 +++ b/src/share/vm/runtime/vframeArray.cpp Thu Feb 23 21:43:59 2012 +0100 @@ -130,6 +130,7 @@ bool rethrow_exception = vf->scope()->rethrow_exception(); if (rethrow_exception) { // (tw) Make sure there are only null pointers on the stack, because the stack values do not correspond to the GC map at the bytecode at which the exception is rethrown. + // TODO: Fix this! Locals map might be wrong too. _expressions = new StackValueCollection(vf->method()->max_stack()); assert(Thread::current()->has_pending_exception(), "just checking"); for (int i=0; i<vf->method()->max_stack(); ++i) { @@ -261,6 +262,7 @@ case Deoptimization::Unpack_uncommon_trap: case Deoptimization::Unpack_reexecute: // redo last byte code + assert(should_reexecute(), ""); pc = Interpreter::deopt_entry(vtos, 0); use_next_mdp = false; break;