# HG changeset patch # User d.mullensiefen # Date 1214817021 -3600 # Node ID 057e8ab413f954b968640dfc05faa48e10cd3d60 # Parent e5de0895d84399d2b77dde1c45f8d3ed119b9dbf variable initialisation in make-sequence-like darcs-hash:20080630091021-1f211-b6290a47a46363652887771c60c68b8eb6567c36.gz diff -r e5de0895d843 -r 057e8ab413f9 base/methods.lisp --- a/base/methods.lisp Thu Mar 13 11:26:52 2008 +0000 +++ b/base/methods.lisp Mon Jun 30 10:10:21 2008 +0100 @@ -463,13 +463,15 @@ preserved from the source sequence (except onset and duration, which are calculated afresh)." (declare (ignore length initial-element initial-contents iep icp)) - (let ((new-sequence (call-next-method))) + (let ((new-sequence (call-next-method)) (slot-name)) ;; Get timing information (setf new-sequence (%recompute-standard-composition-period new-sequence)) (dolist (slotd (sb-mop:class-slots (class-of new-sequence)) new-sequence) - (unless (or (equal (sb-mop:slot-definition-name slotd) '%data) - (equal (sb-mop:slot-definition-name slotd) 'time) - (equal (sb-mop:slot-definition-name slotd) 'interval)) + (setf slot-name (sb-mop:slot-definition-name slotd)) + (unless (or (equal slot-name '%data) + (equal slot-name 'time) + (equal slot-name 'interval) + (not (slot-boundp o slot-name))) (setf (sb-mop:slot-value-using-class (class-of new-sequence) new-sequence slotd)