diff options
| author | Mattias EngdegÄrd | 2024-04-18 12:26:10 +0200 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2024-04-18 13:55:47 +0200 |
| commit | dba115d6bcbc955858526740254bd9a169830d7e (patch) | |
| tree | d579d739fff9cda0c30b33865fbe204c6329026b /src/bytecode.c | |
| parent | d29d4a1d7b07806291b95792a821f8937746a467 (diff) | |
| download | emacs-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.c | 6 |
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); |