Commit ef7dfd39 authored by Robert P. Goldman's avatar Robert P. Goldman
Browse files

Partial solution to Xach's bug from reused system COMPONENT OBJECTS.

Unfortunately, this doesn't work in general because of other problems with
the reuse of  pre-existing SYSTEM COMPONENT objects.
parent 3079d343
Loading
Loading
Loading
Loading
+21 −15
Original line number Diff line number Diff line
@@ -1166,6 +1166,7 @@ processed in order by OPERATE."))
   ;; no direct accessor for pathname, we do this as a method to allow
   ;; it to default in funky ways if not supplied
   (relative-pathname :initarg :pathname)
   ;; the absolute-pathname is computed based on relative-pathname...
   (absolute-pathname)
   (operation-times :initform (make-hash-table)
                    :accessor component-operation-times)
@@ -1174,6 +1175,11 @@ processed in order by OPERATE."))
   (properties :accessor component-properties :initarg :properties
               :initform nil)))

(defmethod reinitialize-instance :after ((obj component) &rest initargs &key)
  "When a component is reloaded, it may have a new location, so the
ABSOLUTE-PATHNAME should be recompiled."
  (slot-makunbound obj 'absolute-pathname))

(defun* component-find-path (component)
  (reverse
   (loop :for c = component :then (component-parent c)