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.
This commit is contained in:
parent
d29d4a1d7b
commit
dba115d6bc
1 changed files with 2 additions and 4 deletions
|
@ -625,8 +625,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
|
|||
varref:
|
||||
{
|
||||
Lisp_Object v1 = vectorp[op], v2;
|
||||
if (!BARE_SYMBOL_P (v1)
|
||||
|| XBARE_SYMBOL (v1)->u.s.redirect != SYMBOL_PLAINVAL
|
||||
if (XBARE_SYMBOL (v1)->u.s.redirect != SYMBOL_PLAINVAL
|
||||
|| (v2 = XBARE_SYMBOL (v1)->u.s.val.value,
|
||||
BASE_EQ (v2, Qunbound)))
|
||||
v2 = Fsymbol_value (v1);
|
||||
|
@ -700,8 +699,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
|
|||
Lisp_Object val = POP;
|
||||
|
||||
/* Inline the most common case. */
|
||||
if (BARE_SYMBOL_P (sym)
|
||||
&& !BASE_EQ (val, Qunbound)
|
||||
if (!BASE_EQ (val, Qunbound)
|
||||
&& XBARE_SYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL
|
||||
&& !XBARE_SYMBOL (sym)->u.s.trapped_write)
|
||||
SET_SYMBOL_VAL (XBARE_SYMBOL (sym), val);
|
||||
|
|
Loading…
Add table
Reference in a new issue