From 1edb4a2ec657c305880901e78317daf1990b5358 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Sun, 23 Mar 2014 20:06:35 -0700 Subject: [PATCH] Improve performance of &key parsing --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/cl-macs.el | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b89cbc28461..aee5738dc43 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-03-24 Daniel Colascione + + * emacs-lisp/cl-macs.el (cl--do-arglist): Use `plist-member' + instead of cl-loop search function. + 2014-03-23 Lars Ingebrigtsen * calendar/parse-time.el (parse-time-iso8601-regexp) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index ae939c9c0e9..cd2d52a4b21 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -503,8 +503,7 @@ its argument list allows full Common Lisp conventions." (varg (if (consp (car arg)) (cl-cadar arg) (car arg))) (def (if (cdr arg) (cadr arg) (or (car cl--bind-defs) (cadr (assq varg cl--bind-defs))))) - (look `(cl-loop for cl--arg on ,restarg by #'cddr - when (eq (car cl--arg) ',karg) return cl--arg))) + (look `(plist-member ,restarg ',karg))) (and def cl--bind-enquote (setq def `',def)) (if (cddr arg) (let* ((temp (or (nth 2 arg) (make-symbol "--cl-var--"))) -- 2.39.5