From 3e3843512bfae0b7a532f633e45d4c140807ec9b Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 1 Nov 2020 13:58:06 +0100 Subject: [PATCH] * Fix 'comp-call-optim pass' for anonymous lambdas * lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous lambdas gate. (comp-call-optim-form-call): Add the correct missing condition. --- lisp/emacs-lisp/comp.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 9b26f6c4198..b35fe9bfcbb 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -2346,6 +2346,7 @@ FUNCTION can be a function-name or byte compiled function." ;; Intra compilation unit procedure call optimization. ;; Attention speed 3 triggers this for non self calls too!! ((and comp-func-callee + (comp-func-c-name comp-func-callee) (or (and (>= (comp-func-speed comp-func) 3) (comp-func-unique-in-cu-p callee)) (and (>= (comp-func-speed comp-func) 2) @@ -2365,9 +2366,7 @@ FUNCTION can be a function-name or byte compiled function." (defun comp-call-optim-func () "Perform the trampoline call optimization for the current function." (cl-loop - with self = (comp-func-name comp-func) for b being each hash-value of (comp-func-blocks comp-func) - when self ;; FIXME add proper anonymous lambda support. do (comp-loop-insn-in-block b (pcase insn (`(set ,lval (callref funcall ,f . ,rest)) -- 2.39.5