]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fbyte_code) <varref>: Use SYMBOL_VALUE.
authorGerd Moellmann <gerd@gnu.org>
Mon, 21 May 2001 12:23:34 +0000 (12:23 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 21 May 2001 12:23:34 +0000 (12:23 +0000)
(Fbyte_code) <varset>: Simplify the test if symbol's value can be
set directly.

src/bytecode.c

index b142e3e667e081278a9ac42b76264891753c3b7e..48739234a6d3ed77ceeb3e9b0ed75bbfb30e4fc9 100644 (file)
@@ -520,7 +520,7 @@ If the third argument is incorrect, Emacs may crash.")
            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 @@ If the third argument is incorrect, Emacs may crash.")
            /* 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
              {