summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-extra.el
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1999-06-12 03:36:46 +0000
committerKarl Heuer <kwzh@gnu.org>1999-06-12 03:36:46 +0000
commit318f417cd31e7d2b0dcedcb4d63297bfb582b71f (patch)
tree5e478559059751c5212ad18b6e9c8d3b339ffa88 /lisp/emacs-lisp/cl-extra.el
parent634376231a95ea020b9ed602b3a3e2a7812b0655 (diff)
downloademacs-318f417cd31e7d2b0dcedcb4d63297bfb582b71f.tar.gz
(getf): Don't call get*.
Diffstat (limited to 'lisp/emacs-lisp/cl-extra.el')
-rw-r--r--lisp/emacs-lisp/cl-extra.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 2402d799108..46801c6cc36 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -624,7 +624,13 @@ argument VECP, this copies vectors as well as conses."
PROPLIST is a list of the sort returned by `symbol-plist'."
(setplist '--cl-getf-symbol-- plist)
(or (get '--cl-getf-symbol-- tag)
- (and def (get* '--cl-getf-symbol-- tag def))))
+ ;; Originally we called get* here,
+ ;; but that fails, because get* has a compiler macro
+ ;; definition that uses getf!
+ (when def
+ (while (and plist (not (eq (car plist) tag)))
+ (setq plist (cdr (cdr plist))))
+ (if plist (car (cdr plist)) def))))
(defun cl-set-getf (plist tag val)
(let ((p plist))