# HG changeset patch # User Gerd Moellmann # Date 990447814 0 # Node ID 6b08e1812292265101b9c02068795a3e05f6c611 # Parent 93e5959b8a0ea9cb27394c167ce88729029eecd8 (Fbyte_code) : Use SYMBOL_VALUE. (Fbyte_code) : Simplify the test if symbol's value can be set directly. diff -r 93e5959b8a0e -r 6b08e1812292 src/bytecode.c --- a/src/bytecode.c Mon May 21 12:23:19 2001 +0000 +++ b/src/bytecode.c Mon May 21 12:23:34 2001 +0000 @@ -520,7 +520,7 @@ v1 = vectorp[op]; if (SYMBOLP (v1)) { - v2 = XSYMBOL (v1)->value; + v2 = SYMBOL_VALUE (v1); if (MISCP (v2) || EQ (v2, Qunbound)) { BEFORE_POTENTIAL_GC (); @@ -626,16 +626,9 @@ /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) - && !MISCP (XSYMBOL (sym)->value) - /* I think this should either be checked in the byte - compiler, or there should be a flag indicating that - a symbol might be constant in Lisp_Symbol, instead - of checking this here over and over again. --gerd. */ - && !EQ (sym, Qnil) - && !EQ (sym, Qt) - && !(XSYMBOL (sym)->name->data[0] == ':' - && EQ (XSYMBOL (sym)->obarray, initial_obarray) - && !EQ (val, sym))) + && !XSYMBOL (sym)->indirect_variable + && !XSYMBOL (sym)->constant + && !MISCP (XSYMBOL (sym)->value)) XSYMBOL (sym)->value = val; else {