simplified slot access somewhat. layered slots still a little screwy.
[clinton/lisp-on-lines.git] / src / description-class.lisp
index ac05535..5297dfd 100644 (file)
 
 (defun description-class-name  (description-class)
     (read-from-string (symbol-name (class-name description-class))))
-
+  
 (defun initialize-description-class (class)
 
-;;; HACK: initialization does not happen properly 
+;;; HACK: initialization does not happ   en properly 
 ;;; when compiling and loading or something like that.
 ;;; Obviously i'm not sure why.
 ;;; So we're going to explicitly initialize things.
                            (find (slot-definition-name direct-slot) 
                                  attribute-objects 
                                  :key #'attribute-name)))
+                      (dprint "Re-initing")
                       (apply #'reinitialize-instance attribute 
-                             (direct-attribute-properties direct-slot))
-                      (apply #'change-class attribute (attribute-class attribute) (direct-attribute-properties direct-slot))
+                             (print (direct-attribute-properties direct-slot)))
+                      (when (not (eq (find-class (attribute-class attribute))
+                                 (class-of attribute)))
+                          
+                          (apply #'change-class attribute  (attribute-class attribute) 
+                                 (direct-attribute-properties direct-slot)))
+                      
 
                       (setf (slot-value description (attribute-name attribute))
                             attribute))))))))