emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master d73d138: Fix byte-optimize-memq incorrectly optimiz


From: Vibhav Pant
Subject: [Emacs-diffs] master d73d138: Fix byte-optimize-memq incorrectly optimizing some memq forms.
Date: Sun, 25 Mar 2018 02:33:08 -0400 (EDT)

branch: master
commit d73d1384aa6d647a930b4dfe3e91505da4ffee21
Author: Vibhav Pant <address@hidden>
Commit: Vibhav Pant <address@hidden>

    Fix byte-optimize-memq incorrectly optimizing some memq forms.
    
    * lisp/emacs-lisp/byte-opt.el (byte-optimize-memq): Call
      byte-optimize-and only for memq forms that can be optimized, use
      byte-optimize-predicate to optimize the final form.
---
 lisp/emacs-lisp/byte-opt.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 54421e0..004f58c 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -774,10 +774,11 @@
       (when (and (eq (car-safe list) 'quote)
                  (listp (setq list (cadr list)))
                  (= (length list) 1))
-        (setq form `(and ,(byte-optimize-predicate
-                           `(eq ,(nth 1 form) ',(nth 0 list)))
-                         ',list))))
-    (byte-optimize-and form)))
+        (setq form (byte-optimize-and
+                    `(and ,(byte-optimize-predicate
+                            `(eq ,(nth 1 form) ',(nth 0 list)))
+                          ',list)))))
+    (byte-optimize-predicate form)))
 
 (put 'identity 'byte-optimizer 'byte-optimize-identity)
 (put 'memq 'byte-optimizer 'byte-optimize-memq)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]