aboutsummaryrefslogtreecommitdiff
path: root/src/host.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'src/host.lisp')
-rw-r--r--src/host.lisp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/host.lisp b/src/host.lisp
index 7bb4669..602927b 100644
--- a/src/host.lisp
+++ b/src/host.lisp
@@ -94,23 +94,20 @@ Called by properties which set up such subhosts, like CHROOT:OS-BOOTSTRAPPED."
:propspec ,(slot-value host 'propspec)))
host)
-;; return values of the following two functions share structure, and thus are
-;; not safe to use except on host objects that were just made, or that are
-;; going straight into %CONSFIGURE
-
-(defmethod %union-propspec-into-host
+(defmethod union-propspec-into-host
((host unpreprocessed-host) (propspec propspec))
(make-instance 'unpreprocessed-host
- :hostattrs (hostattrs host)
+ :hostattrs (copy-list (hostattrs host))
:propspec (append-propspecs (host-propspec host) propspec)))
-(defmethod %replace-propspec-into-host
+(defmethod replace-propspec-into-host
((host unpreprocessed-host) (propspec unpreprocessed-propspec))
;; we have to preprocess HOST as functions that call us want the return
;; value to have all the hostattrs it would have were PROPSPEC not to be
;; substituted in
(make-instance 'unpreprocessed-host
- :hostattrs (hostattrs (preprocess-host host))
+ :hostattrs (hostattrs
+ (preprocess-host (shallow-copy-host host)))
:propspec propspec))
(defmacro defhost (hostname (&key deploy) &body properties)