summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/alloc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/alloc.c b/src/alloc.c
index b5885bdb283..d62b671d440 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4649,6 +4649,7 @@ void
flush_stack_call_func (void (*func) (void *arg), void *arg)
{
void *end;
+ struct thread_state *self = current_thread;
#ifdef HAVE___BUILTIN_UNWIND_INIT
/* Force callee-saved registers and register windows onto the stack.
@@ -4702,8 +4703,10 @@ flush_stack_call_func (void (*func) (void *arg), void *arg)
#endif /* not GC_SAVE_REGISTERS_ON_STACK */
#endif /* not HAVE___BUILTIN_UNWIND_INIT */
- current_thread->stack_top = end;
+ self->stack_top = end;
(*func) (arg);
+
+ eassert (current_thread == self);
}
#endif /* GC_MARK_STACK != 0 */