* win32_threads.c (GC_push_all_stacks): Tolerate bad sp.
From-SVN: r55104
This commit is contained in:
parent
38800fe876
commit
5ddf82b4c7
@ -1,3 +1,8 @@
|
||||
2002-06-28 Hans Boehm <Hans_Boehm@hp.com>
|
||||
Jonathan Clark
|
||||
|
||||
* win32_threads.c (GC_push_all_stacks): Tolerate bad sp.
|
||||
|
||||
2002-06-09 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* include/private/gc_locks.h (GC_test_and_set): Support
|
||||
|
@ -144,8 +144,15 @@ void GC_push_all_stacks()
|
||||
GC_push_one ((word) thread_table[i].context.Edx);
|
||||
GC_push_one ((word) thread_table[i].context.Ecx);
|
||||
GC_push_one ((word) thread_table[i].context.Eax);
|
||||
GC_push_all_stack((char *) thread_table[i].context.Esp,
|
||||
thread_table[i].stack);
|
||||
if (thread_table[i].context.Esp >= (DWORD)thread_table[i].stack
|
||||
|| thread_table[i].context.Esp < (DWORD)bottom) {
|
||||
WARN("Thread stack pointer 0x%lx out of range, pushing everything",
|
||||
thread_table[i].context.Esp);
|
||||
GC_push_all_stack((char *) bottom, thread_table[i].stack);
|
||||
} else {
|
||||
GC_push_all_stack((char *) thread_table[i].context.Esp,
|
||||
thread_table[i].stack);
|
||||
}
|
||||
# else
|
||||
# ifdef ARM32
|
||||
if (thread_table[i].context.Sp >= (DWORD)thread_table[i].stack
|
||||
|
Loading…
Reference in New Issue
Block a user