]> git.eshelyaron.com Git - emacs.git/commitdiff
* Fix free function compilation load process.
authorAndrea Corallo <akrl@sdf.org>
Mon, 14 Sep 2020 20:50:21 +0000 (22:50 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 14 Sep 2020 21:06:42 +0000 (23:06 +0200)
* lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Do not crash
if the eln filename is not canonical (tmp file or manual load).

lisp/emacs-lisp/comp.el

index f1689808eea682c1ad9d03bae2eb921033b213b0..25e2de9d5d239ec4afd5c55fb5dc28f91ad820df 100644 (file)
@@ -2509,17 +2509,18 @@ Prepare every function for final compilation and drive the C back-end."
 (defun comp-clean-up-stale-eln (file)
   "Given FILE remove all the .eln files in `comp-eln-load-path'
 sharing the original source filename (including FILE)."
-  (string-match (rx "-" (group-n 1 (1+ hex)) "-" (1+ hex) ".eln" eos) file)
-  (cl-loop
-   with filename-hash = (match-string 1 file)
-   with regexp = (rx-to-string
-                  `(seq "-" ,filename-hash "-" (1+ hex) ".eln" eos))
-   for dir in (butlast comp-eln-load-path) ; Skip last dir.
-   do (cl-loop
-       with full-dir = (concat dir comp-native-version-dir)
-       for f in (when (file-exists-p full-dir)
-                 (directory-files full-dir t regexp t))
-       do (comp-delete-or-replace-file f))))
+  (when (string-match (rx "-" (group-n 1 (1+ hex)) "-" (1+ hex) ".eln" eos)
+                      file)
+    (cl-loop
+     with filename-hash = (match-string 1 file)
+     with regexp = (rx-to-string
+                    `(seq "-" ,filename-hash "-" (1+ hex) ".eln" eos))
+     for dir in (butlast comp-eln-load-path) ; Skip last dir.
+     do (cl-loop
+         with full-dir = (concat dir comp-native-version-dir)
+         for f in (when (file-exists-p full-dir)
+                   (directory-files full-dir t regexp t))
+         do (comp-delete-or-replace-file f)))))
 
 (defun comp-delete-or-replace-file (oldfile &optional newfile)
   "Replace OLDFILE with NEWFILE.