From: Vibhav Pant Date: Wed, 18 Jan 2017 17:10:50 +0000 (+0530) Subject: * src/bytecode.c: (exec_byte_code) Use hash_lookup for Bswitch X-Git-Tag: emacs-26.0.90~885 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=086c4eaf9d4ecc5074088115fa01c0b2fb061246;p=emacs.git * src/bytecode.c: (exec_byte_code) Use hash_lookup for Bswitch Fgethash type checks the provided table object, which is unnecessary for compiled bytecode. --- diff --git a/src/bytecode.c b/src/bytecode.c index 1695af9cb02..fc434a2812f 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -1417,8 +1417,10 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, { Lisp_Object jmp_table = POP; Lisp_Object v1 = POP; - Lisp_Object dest = Fgethash(v1, jmp_table, Qnil); - if (!NILP(dest)) { + struct Lisp_Hash_Table *h = XHASH_TABLE(jmp_table); + ptrdiff_t i = hash_lookup(h, v1, NULL); + if (i >= 0) { + Lisp_Object dest = HASH_VALUE(h, i); int car = XINT(XCAR(dest)); int cdr = XINT(XCDR(dest)); op = car + (cdr << 8); /* Simulate FETCH2 */