Mercurial > hg > amuse
changeset 178:057e8ab413f9
variable initialisation in make-sequence-like
darcs-hash:20080630091021-1f211-b6290a47a46363652887771c60c68b8eb6567c36.gz
author | d.mullensiefen <d.mullensiefen@gold.ac.uk> |
---|---|
date | Mon, 30 Jun 2008 10:10:21 +0100 |
parents | e5de0895d843 |
children | 88089258e08d |
files | base/methods.lisp |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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)