From a796824f378f3c809ea0678a962d62f28c256075 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Fri, 19 Jul 2013 10:20:36 +0200 Subject: Never allocate environment objects on the stack. We still allocate the actual data vector on the stack sometimes. --- sb-eval2.lisp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sb-eval2.lisp') diff --git a/sb-eval2.lisp b/sb-eval2.lisp index f2ff15b..62bd3a7 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -40,7 +40,11 @@ (,data% (make-array (list ,size%))) (,var (%make-environment :parent ,parent :data ,data%))) (declare (type (mod #.(1+ +stack-max+)) ,size%) - (dynamic-extent ,var) + ;; we must not allocate environment objects on the + ;; stack unless we can be sure that all child + ;; environments will also be allocated on the stack, + ;; but we can't really know that. + ;(dynamic-extent ,var) (dynamic-extent ,data%)) ,@body))) -- cgit v1.2.3