From ff917d632134b76be4c764dd6cf3ac1984b371a4 Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Wed, 11 Nov 2009 06:16:16 +0000 Subject: [PATCH] * subr.el (add-hook): Purecopy strings. (eval-after-load): Purecopy load-history-regexp and the form. --- lisp/ChangeLog | 3 +++ lisp/subr.el | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1f0ddc1217a..3b58fe1125f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2009-11-11 Dan Nicolaescu + * subr.el (add-hook): Purecopy strings. + (eval-after-load): Purecopy load-history-regexp and the form. + * custom.el (custom-declare-group): Purecopy load-file-name. * subr.el (menu-bar-separator): New defconst. diff --git a/lisp/subr.el b/lisp/subr.el index bb3b37ebbf0..fb832608cd4 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1218,6 +1218,8 @@ function, it is changed to a list of functions." (setq hook-value (list hook-value))) ;; Do the actual addition if necessary (unless (member function hook-value) + (when (stringp function) + (setq function (purecopy function))) (setq hook-value (if append (append hook-value (list function)) @@ -1660,14 +1662,14 @@ This function makes or adds to an entry on `after-load-alist'." ;; Add this FORM into after-load-alist (regardless of whether we'll be ;; evaluating it now). (let* ((regexp-or-feature - (if (stringp file) (load-history-regexp file) file)) + (if (stringp file) (setq file (purecopy (load-history-regexp file))) file)) (elt (assoc regexp-or-feature after-load-alist))) (unless elt (setq elt (list regexp-or-feature)) (push elt after-load-alist)) ;; Add FORM to the element unless it's already there. (unless (member form (cdr elt)) - (nconc elt (list form))) + (nconc elt (purecopy (list form)))) ;; Is there an already loaded file whose name (or `provide' name) ;; matches FILE? -- 2.39.2