aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Colascione2014-03-23 20:06:35 -0700
committerDaniel Colascione2014-03-23 20:06:35 -0700
commit1edb4a2ec657c305880901e78317daf1990b5358 (patch)
tree4ff3d04c2d0ef075293845d63c7ecd9582fdd029
parent8becfd220e46d163cfdcd99fc3e6098755952e46 (diff)
downloademacs-1edb4a2ec657c305880901e78317daf1990b5358.tar.gz
emacs-1edb4a2ec657c305880901e78317daf1990b5358.zip
Improve performance of &key parsing
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/emacs-lisp/cl-macs.el3
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 @@
12014-03-24 Daniel Colascione <dancol@dancol.org>
2
3 * emacs-lisp/cl-macs.el (cl--do-arglist): Use `plist-member'
4 instead of cl-loop search function.
5
12014-03-23 Lars Ingebrigtsen <larsi@gnus.org> 62014-03-23 Lars Ingebrigtsen <larsi@gnus.org>
2 7
3 * calendar/parse-time.el (parse-time-iso8601-regexp) 8 * 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."
503 (varg (if (consp (car arg)) (cl-cadar arg) (car arg))) 503 (varg (if (consp (car arg)) (cl-cadar arg) (car arg)))
504 (def (if (cdr arg) (cadr arg) 504 (def (if (cdr arg) (cadr arg)
505 (or (car cl--bind-defs) (cadr (assq varg cl--bind-defs))))) 505 (or (car cl--bind-defs) (cadr (assq varg cl--bind-defs)))))
506 (look `(cl-loop for cl--arg on ,restarg by #'cddr 506 (look `(plist-member ,restarg ',karg)))
507 when (eq (car cl--arg) ',karg) return cl--arg)))
508 (and def cl--bind-enquote (setq def `',def)) 507 (and def cl--bind-enquote (setq def `',def))
509 (if (cddr arg) 508 (if (cddr arg)
510 (let* ((temp (or (nth 2 arg) (make-symbol "--cl-var--"))) 509 (let* ((temp (or (nth 2 arg) (make-symbol "--cl-var--")))