diff src/cpu/zero/vm/stack_zero.cpp @ 1505:0c5b3cf3c1f5

6939182: Zero JNI handles fix Summary: Zero will exit with an error when invoked with -Xcheck:jni. Reviewed-by: twisti, kamg Contributed-by: Gary Benson <gbenson@redhat.com>
author twisti
date Fri, 30 Apr 2010 04:27:25 -0700
parents aa9c266de52a
children 348346af6676
line wrap: on
line diff
--- a/src/cpu/zero/vm/stack_zero.cpp	Thu Apr 29 17:53:58 2010 -0700
+++ b/src/cpu/zero/vm/stack_zero.cpp	Fri Apr 30 04:27:25 2010 -0700
@@ -32,6 +32,7 @@
   // Set up the frame anchor if it isn't already
   bool has_last_Java_frame = thread->has_last_Java_frame();
   if (!has_last_Java_frame) {
+    intptr_t *sp = thread->zero_stack()->sp();
     ZeroFrame *frame = thread->top_zero_frame();
     while (frame) {
       if (frame->is_shark_frame())
@@ -44,13 +45,14 @@
           break;
       }
 
+      sp = ((intptr_t *) frame) + 1;
       frame = frame->next();
     }
 
     if (frame == NULL)
       fatal("unrecoverable stack overflow");
 
-    thread->set_last_Java_frame(frame);
+    thread->set_last_Java_frame(frame, sp);
   }
 
   // Throw the exception
@@ -71,3 +73,9 @@
   if (!has_last_Java_frame)
     thread->reset_last_Java_frame();
 }
+
+#ifndef PRODUCT
+void ZeroStack::zap(int c) {
+  memset(_base, c, available_words() * wordSize);
+}
+#endif // PRODUCT