aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorMattias EngdegÄrd2024-04-18 12:26:10 +0200
committerMattias EngdegÄrd2024-04-18 13:55:47 +0200
commitdba115d6bcbc955858526740254bd9a169830d7e (patch)
treed579d739fff9cda0c30b33865fbe204c6329026b /src/bytecode.c
parentd29d4a1d7b07806291b95792a821f8937746a467 (diff)
downloademacs-dba115d6bcbc955858526740254bd9a169830d7e.tar.gz
emacs-dba115d6bcbc955858526740254bd9a169830d7e.zip
Drop unnecessary type check in varref and varset byte ops
* src/bytecode.c (exec_byte_code): We can safely assume that the immediate argument to varref and varset is a bare symbol; the byte-compiler should guarantee that.
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 8d7240b9966..de25069d94a 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -625,8 +625,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
625 varref: 625 varref:
626 { 626 {
627 Lisp_Object v1 = vectorp[op], v2; 627 Lisp_Object v1 = vectorp[op], v2;
628 if (!BARE_SYMBOL_P (v1) 628 if (XBARE_SYMBOL (v1)->u.s.redirect != SYMBOL_PLAINVAL
629 || XBARE_SYMBOL (v1)->u.s.redirect != SYMBOL_PLAINVAL
630 || (v2 = XBARE_SYMBOL (v1)->u.s.val.value, 629 || (v2 = XBARE_SYMBOL (v1)->u.s.val.value,
631 BASE_EQ (v2, Qunbound))) 630 BASE_EQ (v2, Qunbound)))
632 v2 = Fsymbol_value (v1); 631 v2 = Fsymbol_value (v1);
@@ -700,8 +699,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
700 Lisp_Object val = POP; 699 Lisp_Object val = POP;
701 700
702 /* Inline the most common case. */ 701 /* Inline the most common case. */
703 if (BARE_SYMBOL_P (sym) 702 if (!BASE_EQ (val, Qunbound)
704 && !BASE_EQ (val, Qunbound)
705 && XBARE_SYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL 703 && XBARE_SYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL
706 && !XBARE_SYMBOL (sym)->u.s.trapped_write) 704 && !XBARE_SYMBOL (sym)->u.s.trapped_write)
707 SET_SYMBOL_VAL (XBARE_SYMBOL (sym), val); 705 SET_SYMBOL_VAL (XBARE_SYMBOL (sym), val);