]> git.eshelyaron.com Git - emacs.git/commitdiff
bytecomp.el: Don't store non-keyword symbols in jump-tables.
authorVibhav Pant <vibhavp@gmail.com>
Sun, 5 Feb 2017 10:07:43 +0000 (15:37 +0530)
committerVibhav Pant <vibhavp@gmail.com>
Sun, 5 Feb 2017 10:07:43 +0000 (15:37 +0530)
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-valid-obj2-p) return
  nil when OBJ is a non-keyword symbol (i.e a variable), as the jump
  table can only be used when comparing variables with constant values.

lisp/emacs-lisp/bytecomp.el

index 53622a47d7ad31bb2d1747b3be6f67ffe52ab1c7..b7852c57ebf6449d906bbbeafe613c37f6c88394 100644 (file)
@@ -3971,11 +3971,13 @@ that suppresses all warnings during execution of BODY."
   (setq byte-compile--for-effect nil))
 
 (defun byte-compile-cond-valid-obj2-p (obj)
-  (if (consp obj)
-      (and (eq (car obj) 'quote)
-           (= (length obj) 2)
-           (symbolp (cadr obj)))
-    t))
+  (cond
+   ((consp obj)
+    (and (eq (car obj) 'quote)
+         (= (length obj) 2)
+         (symbolp (cadr obj))))
+   ((symbolp obj) (keywordp obj))
+   (t t)))
 
 (defun byte-compile-cond-vars (obj1 obj2)
   (or