From 749021f8e81830e7fe487f2d9e8124a8281c74a1 Mon Sep 17 00:00:00 2001
From: Marcus Comstedt <marcus@mc.pp.se>
Date: Wed, 12 Jan 2000 05:45:30 +0100
Subject: [PATCH] Fixed reference bug when returning objects from native
 methods.

Rev: src/modules/Java/jvm.c:1.12
---
 src/modules/Java/jvm.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/modules/Java/jvm.c b/src/modules/Java/jvm.c
index 7da2ab8c7d..10566e75a3 100644
--- a/src/modules/Java/jvm.c
+++ b/src/modules/Java/jvm.c
@@ -1,5 +1,5 @@
 /*
- * $Id: jvm.c,v 1.11 1999/12/21 00:04:38 marcus Exp $
+ * $Id: jvm.c,v 1.12 2000/01/12 04:45:30 marcus Exp $
  *
  * Pike interface to Java Virtual Machine
  *
@@ -16,7 +16,7 @@
 #endif /* HAVE_CONFIG_H */
 
 #include "global.h"
-RCSID("$Id: jvm.c,v 1.11 1999/12/21 00:04:38 marcus Exp $");
+RCSID("$Id: jvm.c,v 1.12 2000/01/12 04:45:30 marcus Exp $");
 #include "program.h"
 #include "interpret.h"
 #include "stralloc.h"
@@ -1633,8 +1633,11 @@ static void do_native_dispatch(struct native_method_context *ctx,
 
   memset(rc, 0, sizeof(*rc));
 
-  if(*p != 'V')
+  if(*p != 'V') {
     make_jargs(rc, -1, p, ctx->nat->jvm, env);
+    if((*p == 'L' || *p == '[') && rc->l != NULL)
+      rc->l = (*env)->NewGlobalRef(env, rc->l);
+  }
 
   pop_n_elems(sp-osp);
   UNSETJMP(recovery);
-- 
GitLab