From 6e39e56337cf0273f8aee3988fd45cbfe7fa4c02 Mon Sep 17 00:00:00 2001 From: Marcus Comstedt <marcus@mc.pp.se> Date: Sat, 8 Jul 2000 03:10:36 +0200 Subject: [PATCH] Handle generic error objects. Rev: src/modules/Java/jvm.c:1.25 --- src/modules/Java/jvm.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/modules/Java/jvm.c b/src/modules/Java/jvm.c index 2498c680f9..069ec0aab7 100644 --- a/src/modules/Java/jvm.c +++ b/src/modules/Java/jvm.c @@ -1,5 +1,5 @@ /* - * $Id: jvm.c,v 1.24 2000/07/08 00:17:27 marcus Exp $ + * $Id: jvm.c,v 1.25 2000/07/08 01:10:36 marcus Exp $ * * Pike interface to Java Virtual Machine * @@ -16,10 +16,8 @@ #include "config.h" #endif /* HAVE_CONFIG_H */ -#define NO_PIKE_SHORTHAND - #include "global.h" -RCSID("$Id: jvm.c,v 1.24 2000/07/08 00:17:27 marcus Exp $"); +RCSID("$Id: jvm.c,v 1.25 2000/07/08 01:10:36 marcus Exp $"); #include "program.h" #include "interpret.h" #include "stralloc.h" @@ -1550,6 +1548,7 @@ static void make_java_exception(struct object *jvm, JNIEnv *env, struct svalue *v) { union anything *a; + struct generic_error_struct *gen_err; struct jvm_storage *j = (struct jvm_storage *)get_storage(jvm, jvm_program); @@ -1559,6 +1558,10 @@ static void make_java_exception(struct object *jvm, JNIEnv *env, if(v->type == PIKE_T_ARRAY && v->u.array->size && (a=low_array_get_item_ptr(v->u.array, 0, PIKE_T_STRING))!=NULL) { (*env)->ThrowNew(env, j->class_runtimex, a->string->str); + } else if(v->type == PIKE_T_OBJECT && + (gen_err = (struct generic_error_struct *) + get_storage(v->u.object, generic_error_program)) != NULL) { + (*env)->ThrowNew(env, j->class_runtimex, gen_err->desc->str); } else { (*env)->ThrowNew(env, j->class_runtimex, "Nonstandard pike exception thrown."); -- GitLab