update-instance-for-redefined-class is not passed a proper plist instead of an alist.
authorJean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Tue, 1 Jan 2013 00:35:43 +0000 (19:35 -0500)
committerJean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>
Tue, 1 Jan 2013 00:35:43 +0000 (19:35 -0500)
src/clos/change.lsp

index 609de5b..81c6acb 100644 (file)
                              (mapcar #'slot-definition-name new-local-slotds)))
        (dolist (slot-name discarded-slots)
          (let* ((ndx (position slot-name old-local-slotds :key #'slot-definition-name)))
-           (push (cons slot-name (si::instance-ref old-instance ndx))
-                 property-list)))
+           ;; (push (cons slot-name (si::instance-ref old-instance ndx))
+           ;;    property-list) ;; This is building an a-list! JCB
+           (setq property-list (list* slot-name (si::instance-ref old-instance ndx) property-list)) ;; This builds a p-list.
+           ))
        (dolist (new-slot new-local-slotds)
          (let* ((name (slot-definition-name new-slot))
                 (old-i (position name old-local-slotds :key #'slot-definition-name)))