diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/emacs.c | 2 | ||||
-rw-r--r-- | src/eval.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/emacs.c b/src/emacs.c index 319f5efef4..4777044215 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -718,8 +718,6 @@ static int main2 (void *, int, char **); int main (int argc, char **argv) { - /* Override Guile's libgc configuration. */ - xputenv ("GC_ALL_INTERIOR_POINTERS=1"); scm_boot_guile (argc, argv, main2, NULL); } diff --git a/src/eval.c b/src/eval.c index 5edfa79c92..8e60e8e30f 100644 --- a/src/eval.c +++ b/src/eval.c @@ -73,6 +73,10 @@ ptrdiff_t specpdl_size; union specbinding *specpdl; +/* Pointer to the dummy entry before the specpdl. */ + +union specbinding *specpdl_base; + /* Pointer to first unused element in specpdl. */ union specbinding *specpdl_ptr; @@ -172,6 +176,7 @@ init_eval_once (void) { enum { size = 50 }; union specbinding *pdlvec = xmalloc ((size + 1) * sizeof *specpdl); + specpdl_base = pdlvec; specpdl_size = size; specpdl = specpdl_ptr = pdlvec + 1; /* Don't forget to update docs (lispref node "Local Variables"). */ @@ -1460,6 +1465,7 @@ grow_specpdl (void) Qnil); } pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl); + specpdl_base = pdlvec; specpdl = pdlvec + 1; specpdl_size = pdlvecsize - 1; specpdl_ptr = specpdl + count; |