fix handling of exceptions thrown from interpreter during method invocation

Since we use Thread::code to store a reference to either the method to
be invoked or the current bytecode being executed depending on the
context, we must be careful to switch it back to the bytecode of the
exception handler if an exception is thrown while invoking a method
(e.g. an UnsatisfiedLinkError).
This commit is contained in:
Joel Dice 2012-03-06 13:03:42 -07:00
parent ac63d08450
commit 44277db2de

View File

@ -758,6 +758,8 @@ interpret3(Thread* t, const int base)
object& exception = t->exception;
uintptr_t* stack = t->stack;
code = methodCode(t, frameMethod(t, frame));
if (UNLIKELY(exception)) {
goto throw_;
}