From 3c68d115ff525228ef89a7f8b87fd6cd973bd8e8 Mon Sep 17 00:00:00 2001 From: schani Date: Thu, 18 Nov 1999 18:30:16 +0000 Subject: [PATCH] Clean bugfix for gc-bug. --- mm/heap2.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/heap2.c b/mm/heap2.c index aee5d7d6a..f99b6812f 100644 --- a/mm/heap2.c +++ b/mm/heap2.c @@ -858,7 +858,7 @@ void gc_mark_stack (void) #ifdef USE_THREADS thread *aThread; - if (currentThread == NULL) { + if (currentThread == NULL || currentThread == mainThread) { void **top_of_stack = &dummy; if (top_of_stack > stackbottom) @@ -872,9 +872,9 @@ void gc_mark_stack (void) gc_mark_object_at((void*)aThread); if (CONTEXT(aThread).usedStackTop > CONTEXT(aThread).stackEnd) markreferences((void**)CONTEXT(aThread).stackEnd, - (void**)CONTEXT(aThread).usedStackTop + 64); + (void**)CONTEXT(aThread).usedStackTop); else - markreferences((void**)CONTEXT(aThread).usedStackTop - 64, + markreferences((void**)CONTEXT(aThread).usedStackTop, (void**)CONTEXT(aThread).stackEnd); } @@ -950,7 +950,6 @@ gc_call (void) intsDisable(); if (currentThread == NULL || currentThread == mainThread) { - CONTEXT(mainThread).usedStackTop = &dummy; gc_run(); } else -- 2.25.1