diff --git a/src/modules/Java/jvm.c b/src/modules/Java/jvm.c index 7da2ab8c7d7aa8d52c84b046f9f0cda39745bdf4..10566e75a3b9d0573bb942a018a7401c4d98d097 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);