summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-10-01 16:47:39 +0200
committerAndy Wingo <wingo@pobox.com>2010-10-01 16:47:39 +0200
commitb95d76fcf28fe2b10985daba3dff91281846f879 (patch)
tree26c4a4625311044707a035ecfc627f1eea1cbf14
parent138bf22d8272fd1412bd522833dd252e791ad95d (diff)
downloadguile-b95d76fcf28fe2b10985daba3dff91281846f879.tar.gz
c stack overflow checked for, once more
* libguile/stackchk.h: Include private-options.h if we are building guile. * libguile/vm.c (scm_c_vm_run): Check for C stack overflow before entering the engine.
-rw-r--r--libguile/stackchk.h1
-rw-r--r--libguile/vm.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/libguile/stackchk.h b/libguile/stackchk.h
index 68dec762f..aa6a1d493 100644
--- a/libguile/stackchk.h
+++ b/libguile/stackchk.h
@@ -35,6 +35,7 @@
#define SCM_STACK_CHECKING_P SCM_STACK_LIMIT
#if defined BUILDING_LIBGUILE && defined STACK_CHECKING
+#include "libguile/private-options.h"
# if SCM_STACK_GROWS_UP
# define SCM_STACK_OVERFLOW_P(s)\
((SCM_STACK_PTR (s) - SCM_I_CURRENT_THREAD->base) > SCM_STACK_LIMIT)
diff --git a/libguile/vm.c b/libguile/vm.c
index 29d686255..58d9a9f80 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -560,6 +560,7 @@ SCM
scm_c_vm_run (SCM vm, SCM program, SCM *argv, int nargs)
{
struct scm_vm *vp = SCM_VM_DATA (vm);
+ SCM_CHECK_STACK;
return vm_engines[vp->engine](vm, program, argv, nargs);
}