--- a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Fri Dec 18 13:38:49 2015 +0000
+++ b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp Sun Dec 20 10:37:23 2015 -0500
@@ -65,23 +65,19 @@
// Something would really have to be screwed up to get a NULL pc
- if (addr.pc() == NULL ) {
+ if (addr.pc() == NULL) {
assert(false, "NULL pc from signal handler!");
return false;
-
}
// If sp and fp are nonsense just leave them out
- if ((address)ret_sp >= jt->stack_base() ||
- (address)ret_sp < jt->stack_base() - jt->stack_size() ) {
-
- ret_sp = NULL;
- ret_fp = NULL;
+ if (!jt->on_local_stack((address)ret_sp)) {
+ ret_sp = NULL;
+ ret_fp = NULL;
} else {
-
// sp is reasonable is fp reasonable?
- if ( (address)ret_fp >= jt->stack_base() || ret_fp < ret_sp) {
+ if ((address)ret_fp >= jt->stack_base() || ret_fp < ret_sp) {
ret_fp = NULL;
}
}