- (iterate ((name (list-elements olayout))
- (opos (interval :from 0)))
- (let ((npos (posq name nlayout)))
- (if npos
- (setf (clos-slots-ref nslots npos)
- (clos-slots-ref oslots opos))
- (progn
- (push name discarded)
- (unless (eq (clos-slots-ref oslots opos) +slot-unbound+)
- (setf (getf plist name) (clos-slots-ref oslots opos)))))))
+ (let ((opos 0))
+ (dolist (name olayout)
+ (let ((npos (posq name nlayout)))
+ (if npos
+ (setf (clos-slots-ref nslots npos)
+ (clos-slots-ref oslots opos))
+ (progn
+ (push name discarded)
+ (unless (eq (clos-slots-ref oslots opos) +slot-unbound+)
+ (setf (getf plist name) (clos-slots-ref oslots opos))))))
+ (incf opos)))