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