]> git.eshelyaron.com Git - emacs.git/commitdiff
bytecode.c (exec_byte_code): don't check hash code in linear search.
authorVibhav Pant <vibhavp@gmail.com>
Thu, 9 Feb 2017 13:13:31 +0000 (18:43 +0530)
committerVibhav Pant <vibhavp@gmail.com>
Thu, 9 Feb 2017 13:13:31 +0000 (18:43 +0530)
* src/bytecode.c (exec_byte_code): Don't check that the hash code is
  not nil when linear scanning the jump table. Hash tables for are
  declared with :size as the exact number of cases, so each entry i
  should have a hash code. When BYTE_CODE_SAFE, do it as a sanity
  check.

src/bytecode.c

index 9bb7bd4e6852e3de94176db691ad0452a33a1b38..fb10a6d69140110240480330ef281ba8e25f44ca 100644 (file)
@@ -1430,8 +1430,10 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
                    FIXME: 5 is arbitrarily chosen.  */
                 for (i = 0; i < HASH_TABLE_SIZE (h); i++)
                   {
-                    if (!NILP (HASH_HASH (h, i)) &&
-                        (EQ (v1, HASH_KEY (h, i)) ||
+#ifdef BYTE_CODE_SAFE
+                    eassert (!NILP (HASH_HASH (h, i)));
+#endif
+                    if ((EQ (v1, HASH_KEY (h, i)) ||
                          (h->test.cmpfn &&
                           h->test.cmpfn (&h->test, v1, HASH_KEY (h, i)))))
                       {