From: Drew Crampsie Date: Thu, 27 Oct 2005 22:30:43 +0000 (-0700) Subject: fixed shared list structure bug for default presentation contexts. X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/commitdiff_plain/0fd9d744bd765c3515ccd6cab4cf2cc9f74f3470?hp=5dea194ed068c8ff73dd65849d92be4ee6c7097b fixed shared list structure bug for default presentation contexts. darcs-hash:20051027223043-5417e-c7b3b3447990562b828e667a1bb3a5d4afdd8cc6.gz --- diff --git a/src/mewa.lisp b/src/mewa.lisp index c519396..dc8b278 100644 --- a/src/mewa.lisp +++ b/src/mewa.lisp @@ -98,7 +98,7 @@ attributes is an alist keyed on the attribute name." (defun find-presentation-attributes (model) (remove nil (mapcar #'(lambda (att) (when (keywordp (car att)) - att)) + (copy-list att) )) (cdr (find-class-attributes model))))) @@ -318,7 +318,9 @@ attributes is an alist keyed on the attribute name." (defmethod make-presentation ((object t) &key (type :viewer) (initargs nil)) + (let* ((p (make-instance 'mewa-object-presentation)) + (a (progn (setf (slot-value p 'instance) object) (initialize-slots p) (assoc type (find-all-attributes p)))) @@ -330,6 +332,8 @@ attributes is an alist keyed on the attribute name." (symbol-name type) type)) (plist-union initargs (cddr a))))) + + (setf (slot-value i 'instance) object) (initialize-slots i) (setf (slot-value i 'initializedp) t)