From 0b60259ca8e7553c7029bb3471a1d29c3893200e Mon Sep 17 00:00:00 2001 From: Thierry Volpiatto Date: Tue, 18 Aug 2015 07:34:18 +0200 Subject: [PATCH] Check if package-archive-contents is populated (#51). * async-bytecomp.el (async-bytecomp--get-package-deps): Add comment. (async-bytecomp-get-allowed-pkgs): Don't enter loop when package-archive-contents is nil. --- async-bytecomp.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/async-bytecomp.el b/async-bytecomp.el index e680df012..0daa07942 100644 --- a/async-bytecomp.el +++ b/async-bytecomp.el @@ -109,6 +109,8 @@ All *.elc files are systematically deleted before proceeding." (declare-function package-desc-reqs "package.el" (cl-x)) (defun async-bytecomp--get-package-deps (pkg &optional only) + ;; Same as `package--get-deps' but parse instead `package-archive-contents' + ;; because PKG is not already installed and not present in `package-alist'. (let* ((pkg-desc (cadr (assq pkg package-archive-contents))) (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc) for name = (car p) @@ -127,11 +129,13 @@ All *.elc files are systematically deleted before proceeding." (defun async-bytecomp-get-allowed-pkgs () (when (and async-bytecomp-allowed-packages (listp async-bytecomp-allowed-packages)) - (cl-loop for p in async-bytecomp-allowed-packages - append (async-bytecomp--get-package-deps p) into reqs - finally return - (delete-dups - (append async-bytecomp-allowed-packages reqs))))) + (if package-archive-contents + (cl-loop for p in async-bytecomp-allowed-packages + append (async-bytecomp--get-package-deps p) into reqs + finally return + (delete-dups + (append async-bytecomp-allowed-packages reqs))) + async-bytecomp-allowed-packages))) (defadvice package--compile (around byte-compile-async) (let ((cur-package (package-desc-name pkg-desc))) -- 2.39.2