changeset in /hg/icedtea6: 2008-11-06 Gary Benson <gbenson at red...
Gary Benson
gbenson at redhat.com
Thu Nov 6 04:00:24 PST 2008
changeset 2edccb28b389 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2edccb28b389
description:
2008-11-06 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
(CppInterpreter::native_entry): Unwind correctly if an
exception is thrown while setting up the call.
diffstat:
2 files changed, 13 insertions(+), 12 deletions(-)
ChangeLog | 6 +++++
ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 19 ++++++-----------
diffs (55 lines):
diff -r a261142d4db9 -r 2edccb28b389 ChangeLog
--- a/ChangeLog Thu Nov 06 06:53:14 2008 -0500
+++ b/ChangeLog Thu Nov 06 07:00:19 2008 -0500
@@ -1,3 +1,9 @@ 2008-11-06 Gary Benson <gbenson at redhat
+2008-11-06 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (CppInterpreter::native_entry): Unwind correctly if an
+ exception is thrown while setting up the call.
+
2008-11-06 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
diff -r a261142d4db9 -r 2edccb28b389 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
--- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Thu Nov 06 06:53:14 2008 -0500
+++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Thu Nov 06 07:00:19 2008 -0500
@@ -206,10 +206,8 @@ void CppInterpreter::native_entry(method
}
else {
CALL_VM_NOCHECK(InterpreterRuntime::monitorenter(thread, monitor));
- if (HAS_PENDING_EXCEPTION) {
- thread->pop_zero_frame();
- return;
- }
+ if (HAS_PENDING_EXCEPTION)
+ goto unwind_and_return;
}
}
}
@@ -220,20 +218,17 @@ void CppInterpreter::native_entry(method
address handlerAddr = method->signature_handler();
if (handlerAddr == NULL) {
CALL_VM_NOCHECK(InterpreterRuntime::prepare_native_call(thread, method));
- if (HAS_PENDING_EXCEPTION) {
- thread->pop_zero_frame();
- return;
- }
+ if (HAS_PENDING_EXCEPTION)
+ goto unwind_and_return;
+
handlerAddr = method->signature_handler();
assert(handlerAddr != NULL, "eh?");
}
if (handlerAddr == (address) InterpreterRuntime::slow_signature_handler) {
CALL_VM_NOCHECK(handlerAddr =
InterpreterRuntime::slow_signature_handler(thread, method, NULL,NULL));
- if (HAS_PENDING_EXCEPTION) {
- thread->pop_zero_frame();
- return;
- }
+ if (HAS_PENDING_EXCEPTION)
+ goto unwind_and_return;
}
handler = \
InterpreterRuntime::SignatureHandler::from_handlerAddr(handlerAddr);
More information about the distro-pkg-dev
mailing list