diff options
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); |