aboutsummaryrefslogtreecommitdiff
path: root/libjava/exception.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/exception.cc')
-rw-r--r--libjava/exception.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/libjava/exception.cc b/libjava/exception.cc
index b8b9634..fdbfc42 100644
--- a/libjava/exception.cc
+++ b/libjava/exception.cc
@@ -24,7 +24,7 @@ details. */
typedef struct {
__eh_info eh_info;
- void *value;
+ jthrowable value;
} java_eh_info;
@@ -60,7 +60,7 @@ _Jv_type_matcher (java_eh_info *info, void* match_info,
size_t mi = (size_t) match_info;
if ((mi & 1) != 0)
match_info = _Jv_FindClass ((Utf8Const*) (mi - 1), NULL);
- if (! _Jv_IsInstanceOf ((jobject) info->value, (jclass) match_info))
+ if (! _Jv_IsInstanceOf (info->value, (jclass) match_info))
return NULL;
}
@@ -136,11 +136,15 @@ _Jv_setup_eh_info (__eh_info *)
/* Perform a throw, Java style. Throw will unwind through this call,
so there better not be any handlers or exception thrown here. */
+#ifdef SJLJ_EXCEPTIONS
+#define _Jv_Throw _Jv_Sjlj_Throw
+#endif
+
extern "C" void
-_Jv_Throw (void *value)
+_Jv_Throw (jthrowable value)
{
if (value == NULL)
- value = (void *) new java::lang::NullPointerException ();
+ value = new java::lang::NullPointerException;
java_eh_info *ehinfo = *(__get_eh_info ());
if (ehinfo == NULL)
{