emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] lisp/custom.el (load-theme): Only compute hash when needed


From: Mark Oteiza
Subject: [PATCH] lisp/custom.el (load-theme): Only compute hash when needed
Date: Sun, 13 Sep 2015 15:08:40 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

---
Right now, load-theme needlessly computes the hash, whether or not the
user wants to confirm if the theme is "safe".  Let's not do that!

 lisp/custom.el | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/lisp/custom.el b/lisp/custom.el
index ea5ab7a..30bea19 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1214,13 +1214,11 @@ Return t if THEME was successfully loaded, nil 
otherwise."
     (put theme 'theme-documentation nil))
   (let ((fn (locate-file (concat (symbol-name theme) "-theme.el")
                         (custom-theme--load-path)
-                        '("" "c")))
-       hash)
+                        '("" "c"))))
     (unless fn
       (error "Unable to find theme file for `%s'" theme))
     (with-temp-buffer
       (insert-file-contents fn)
-      (setq hash (secure-hash 'sha256 (current-buffer)))
       ;; Check file safety with `custom-safe-themes', prompting the
       ;; user if necessary.
       (when (or no-confirm
@@ -1228,8 +1226,9 @@ Return t if THEME was successfully loaded, nil otherwise."
                (and (memq 'default custom-safe-themes)
                     (equal (file-name-directory fn)
                            (expand-file-name "themes/" data-directory)))
-               (member hash custom-safe-themes)
-               (custom-theme-load-confirm hash))
+                (let ((hash (secure-hash 'sha256 (current-buffer))))
+                  (or (member hash custom-safe-themes)
+                      (custom-theme-load-confirm hash))))
        (let ((custom--inhibit-theme-enable t)
               (buffer-file-name fn))    ;For load-history.
          (eval-buffer))
-- 
2.5.1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]