Index: japhar/lib/libruntime/interpfunc.c
===================================================================
RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/interpfunc.c,v
retrieving revision 1.129
diff -u -r1.129 interpfunc.c
--- interpfunc.c	2000/01/02 02:02:45	1.129
+++ interpfunc.c	2000/06/25 07:19:14
@@ -2284,7 +2284,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2317,7 +2317,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2350,7 +2350,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2383,7 +2383,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2416,7 +2416,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2449,7 +2449,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2482,7 +2482,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2515,7 +2515,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2550,7 +2550,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2584,7 +2584,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2618,7 +2618,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2652,7 +2652,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2686,7 +2686,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2723,7 +2723,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2757,7 +2757,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
@@ -2791,7 +2791,7 @@
 
   length_val = HVM_ArrayGetLength(arrayref);
 
-  if (index >= length_val)
+  if (index >= length_val || index < 0)
     {
       char index_str[100];
       PR_snprintf(index_str, sizeof(index_str), "%d", index);
Index: japhar/lib/libruntime/method.c
===================================================================
RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/method.c,v
retrieving revision 1.24
diff -u -r1.24 method.c
--- method.c	2000/01/02 01:36:58	1.24
+++ method.c	2000/06/25 07:19:15
@@ -128,12 +128,11 @@
 
   if (method->access_flags & ACC_NATIVE)
     {
-      StackFrame *parent_frame = this_frame->parent;
       do_native_method_call(henv, method);
       if (henv->_exception)
         HVM_ExceptionThrowWithStackFrame(henv,
                                          henv->_exception,
-                                         parent_frame);
+                                         this_frame);
     }
   else
     {
Index: japhar/lib/libruntime/nativeglue.c
===================================================================
RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/nativeglue.c,v
retrieving revision 1.94
diff -u -r1.94 nativeglue.c
--- nativeglue.c	1999/10/25 07:10:42	1.94
+++ nativeglue.c	2000/06/25 07:19:15
@@ -179,7 +179,6 @@
       msg = PR_smprintf("%s.%s", class_name, method->name);
 
 	  PR_ASSERT(NULL != msg);
-
       HVM_ExceptionThrow(henv, java_lang_UnsatisfiedLinkError,
                       msg);
       PR_DELETE(msg);
@@ -439,6 +438,13 @@
   fill_local_vars(new_frame, method, args, obj);
 
   new_frame->opstack_top = henv->op_stack->stack_top;
+
+  if (henv->vm->_verbose_flags & VERBOSE_METHOD)
+    {
+      int i;
+      for (i = 0; i < new_frame->depth - 1; i ++) printf (" ");
+      printf ("> %s.%s\n", getClassName(henv, method->clazz), method->name);
+    }
 
   henv->return_value.value.j = 0;
 
Index: japhar/lib/libruntime/objects.c
===================================================================
RCS file: /cvsroot/hungry/java/japhar/lib/libruntime/objects.c,v
retrieving revision 1.94
diff -u -r1.94 objects.c
--- objects.c	2000/01/02 03:05:03	1.94
+++ objects.c	2000/06/25 07:19:15
@@ -472,6 +472,13 @@
 
           native_frame->method = clinit;
 
+          if (henv->vm->_verbose_flags & VERBOSE_METHOD)
+            {
+              int i;
+              for (i = 0; i < native_frame->depth - 1; i ++) printf (" ");
+                printf ("> %s.%s\n", getClassName(henv, clinit->clazz), clinit->name);
+            }
+
           HVM_MethodCallStatic(henv, clinit, NULL);
 
           pop_frame(henv);
