diff src/share/vm/runtime/thread.cpp @ 11146:e619a2766bcc

8016131: nsk/sysdict/vm/stress/chain tests crash the VM in 'entry_frame_is_first()' Reviewed-by: jrose, kvn, mgronlun
author rbackman
date Wed, 12 Jun 2013 11:17:39 +0200
parents 2e8f19c2feef
children 5e3b6f79d280
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.cpp	Tue Jul 16 07:33:29 2013 +0200
+++ b/src/share/vm/runtime/thread.cpp	Wed Jun 12 11:17:39 2013 +0200
@@ -954,6 +954,14 @@
 }
 
 
+bool Thread::is_in_usable_stack(address adr) const {
+  size_t stack_guard_size = os::uses_stack_guard_pages() ? (StackYellowPages + StackRedPages) * os::vm_page_size() : 0;
+  size_t usable_stack_size = _stack_size - stack_guard_size;
+
+  return ((adr < stack_base()) && (adr >= stack_base() - usable_stack_size));
+}
+
+
 // We had to move these methods here, because vm threads get into ObjectSynchronizer::enter
 // However, there is a note in JavaThread::is_lock_owned() about the VM threads not being
 // used for compilation in the future. If that change is made, the need for these methods