diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-02-23 13:31:45 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-02-23 13:31:45 -0700 |
commit | e4c60eb5a55ea6d1f44338a849abcf1566f01e8d (patch) | |
tree | 427c6324bc9da9c52b501ecf84cd1896ac6645bb /src/data.lisp | |
parent | 37f68da3c036de3a483882dbbe8fd2c7dd7e8ced (diff) | |
download | consfigurator-e4c60eb5a55ea6d1f44338a849abcf1566f01e8d.tar.gz |
fix QUERY-DATA-SOURCES
We must close over the value, not the variable.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/data.lisp')
-rw-r--r-- | src/data.lisp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/data.lisp b/src/data.lisp index 8a6a210..6178320 100644 --- a/src/data.lisp +++ b/src/data.lisp @@ -173,13 +173,15 @@ This function is called by property :APPLY and :UNAPPLY subroutines." (read-file-string (data-file data))) (defun query-data-sources (iden1 iden2) - (car (sort (loop for (ver . get) in *data-sources* - for version = (funcall ver iden1 iden2) - when version collect (cons version - (lambda () - (funcall get iden1 iden2)))) - (lambda (x y) - (version> (car x) (car y)))))) + (flet ((make-thunk (v iden1 iden2) + (lambda () + (funcall v iden1 iden2)))) + (car (sort (loop for (ver . get) in *data-sources* + for version = (funcall ver iden1 iden2) + when version + collect (cons version (make-thunk get iden1 iden2))) + (lambda (x y) + (version> (car x) (car y))))))) ;; called by implementations of ESTABLISH-CONNECTION which start up remote ;; Lisp images |