From 6459061654c8135bcff03253200599168aab707b Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 7 Oct 2012 14:53:27 +0200 Subject: [PATCH] In with-early-make-instance, only collect initialization forms from slots that are not initially unbound --- src/clos/boot.lsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/clos/boot.lsp b/src/clos/boot.lsp index 4466bafb1..6c3b6d8b3 100644 --- a/src/clos/boot.lsp +++ b/src/clos/boot.lsp @@ -35,13 +35,14 @@ (not (eq (getf list name 'wrong) 'wrong)))) (loop for (name . slotd) in slots for initarg = (getf slotd :initarg) - for initform = (getf slotd :initform) + for initform = (getf slotd :initform (si::unbound)) for initvalue = (getf key-value-pairs initarg) for index from 0 do (cond ((and initarg (initializerp initarg key-value-pairs)) (setf initform (getf key-value-pairs initarg))) ((initializerp name key-value-pairs) (setf initform (getf key-value-pairs name)))) + when (si:sl-boundp initform) collect `(si::instance-set ,object ,index ,initform))) (when %class (si::instance-sig-set ,object))