aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c6
1 files changed, 6 insertions, 0 deletions
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;