From: Manuel Giraud Date: Fri, 13 Jun 2025 09:25:15 +0000 (+0200) Subject: Avoid rebuilding a static alist inside a loop X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d747a1212103b4c07df646fff1e734da9faf316e;p=emacs.git Avoid rebuilding a static alist inside a loop * lisp/calendar/diary-lib.el (diary-mark-entries-1): Build months-alist outside of the loop. (Bug#78779) (cherry picked from commit d7e55558759dc7be0c38a8c8d508be1909b20aa4) --- diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index 4fdf5150cbd..8fb6fadfe4c 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -1280,8 +1280,15 @@ function that converts absolute dates to dates of the appropriate type." (month "[0-9]+\\|\\*") (day "[0-9]+\\|\\*") (year "[0-9]+\\|\\*")) - (let* ((case-fold-search t) - marks) + (let ((months-alist (if months (calendar-make-alist months) + (calendar-make-alist + calendar-month-name-array + 1 nil calendar-month-abbrev-array + (mapcar (lambda (e) + (format "%s." e)) + calendar-month-abbrev-array)))) + (case-fold-search t) + marks) (dolist (date-form diary-date-forms) (if (eq (car date-form) 'backup) ; ignore 'backup directive (setq date-form (cdr date-form))) @@ -1363,16 +1370,7 @@ function that converts absolute dates to dates of the appropriate type." (if mm-name (setq mm (if (string-equal mm-name "*") 0 - (cdr (assoc-string - mm-name - (if months (calendar-make-alist months) - (calendar-make-alist - calendar-month-name-array - 1 nil calendar-month-abbrev-array - (mapcar (lambda (e) - (format "%s." e)) - calendar-month-abbrev-array))) - t))))) + (cdr (assoc-string mm-name months-alist t))))) (funcall markfunc mm dd yy marks))))))))) ;;;###cal-autoload