From 031ea6c39cc26217c68448bc205dcd8d9eaf8731 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 28 Mar 2010 08:29:10 -0400 Subject: [PATCH] vm: fix factor_vm::dispatch_signal() --- vm/os-unix.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vm/os-unix.cpp b/vm/os-unix.cpp index 01740a1712..8aa100aa01 100644 --- a/vm/os-unix.cpp +++ b/vm/os-unix.cpp @@ -67,7 +67,7 @@ void sleep_nanos(u64 nsec) void factor_vm::init_ffi() { - /* NULL_DLL is "libfactor.dylib" for OS X and NULL for generic unix */ + /* NULL_DLL is "libfactor.dylib" for OS X and NULL for generic Unix */ null_dll = dlopen(NULL_DLL,RTLD_LAZY); } @@ -143,6 +143,8 @@ void factor_vm::dispatch_signal(void *uap, void (handler)()) { UAP_STACK_POINTER(uap) = (UAP_STACK_POINTER_TYPE)fix_callstack_top((stack_frame *)UAP_STACK_POINTER(uap)); UAP_PROGRAM_COUNTER(uap) = (cell)handler; + + signal_callstack_top = (stack_frame *)UAP_STACK_POINTER(uap); } void memory_signal_handler(int signal, siginfo_t *siginfo, void *uap)