(register Lisp_Object symbol)
{
CHECK_SYMBOL (symbol);
- return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt);
+ return (EQ (SVAR (XSYMBOL (symbol), function), Qunbound) ? Qnil : Qt);
}
DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0,
CHECK_SYMBOL (symbol);
if (NILP (symbol) || EQ (symbol, Qt))
xsignal1 (Qsetting_constant, symbol);
- XSYMBOL (symbol)->function = Qunbound;
+ SVAR (XSYMBOL (symbol), function) = Qunbound;
return symbol;
}
(register Lisp_Object symbol)
{
CHECK_SYMBOL (symbol);
- if (!EQ (XSYMBOL (symbol)->function, Qunbound))
- return XSYMBOL (symbol)->function;
+ if (!EQ (SVAR (XSYMBOL (symbol), function), Qunbound))
+ return SVAR (XSYMBOL (symbol), function);
xsignal1 (Qvoid_function, symbol);
}
(register Lisp_Object symbol)
{
CHECK_SYMBOL (symbol);
- return XSYMBOL (symbol)->plist;
+ return SVAR (XSYMBOL (symbol), plist);
}
DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
if (NILP (symbol) || EQ (symbol, Qt))
xsignal1 (Qsetting_constant, symbol);
- function = XSYMBOL (symbol)->function;
+ function = SVAR (XSYMBOL (symbol), function);
if (!NILP (Vautoload_queue) && !EQ (function, Qunbound))
Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
if (CONSP (function) && EQ (XCAR (function), Qautoload))
Fput (symbol, Qautoload, XCDR (function));
- XSYMBOL (symbol)->function = definition;
+ SVAR (XSYMBOL (symbol), function) = definition;
/* Handle automatic advice activation. */
- if (CONSP (XSYMBOL (symbol)->plist)
+ if (CONSP (SVAR (XSYMBOL (symbol), plist))
&& !NILP (Fget (symbol, Qad_advice_info)))
{
call2 (Qad_activate_internal, symbol, Qnil);
- definition = XSYMBOL (symbol)->function;
+ definition = SVAR (XSYMBOL (symbol), function);
}
return definition;
}
(register Lisp_Object symbol, Lisp_Object definition, Lisp_Object docstring)
{
CHECK_SYMBOL (symbol);
- if (CONSP (XSYMBOL (symbol)->function)
- && EQ (XCAR (XSYMBOL (symbol)->function), Qautoload))
+ if (CONSP (SVAR (XSYMBOL (symbol), function))
+ && EQ (XCAR (SVAR (XSYMBOL (symbol), function)), Qautoload))
LOADHIST_ATTACH (Fcons (Qt, symbol));
if (!NILP (Vpurify_flag)
/* If `definition' is a keymap, immutable (and copying) is wrong. */
(register Lisp_Object symbol, Lisp_Object newplist)
{
CHECK_SYMBOL (symbol);
- XSYMBOL (symbol)->plist = newplist;
+ SVAR (XSYMBOL (symbol), plist) = newplist;
return newplist;
}
XSETSYMBOL (var, symbol);
if (blv->frame_local)
{
- tem1 = assq_no_quit (var, FVAR (XFRAME (selected_frame), param_alist));
+ tem1 = assq_no_quit (var, XFRAME (selected_frame)->param_alist);
blv->where = selected_frame;
}
else
XSETSYMBOL (symbol, sym); /* May have changed via aliasing. */
tem1 = Fassq (symbol,
(blv->frame_local
- ? FVAR (XFRAME (where), param_alist)
+ ? XFRAME (where)->param_alist
: BVAR (XBUFFER (where), local_var_alist)));
blv->where = where;
blv->found = 1;
{
if (!SYMBOLP (hare) || EQ (hare, Qunbound))
break;
- hare = XSYMBOL (hare)->function;
+ hare = SVAR (XSYMBOL (hare), function);
if (!SYMBOLP (hare) || EQ (hare, Qunbound))
break;
- hare = XSYMBOL (hare)->function;
+ hare = SVAR (XSYMBOL (hare), function);
- tortoise = XSYMBOL (tortoise)->function;
+ tortoise = SVAR (XSYMBOL (tortoise), function);
if (EQ (hare, tortoise))
xsignal1 (Qcyclic_function_indirection, object);
/* Optimize for no indirection. */
result = object;
if (SYMBOLP (result) && !EQ (result, Qunbound)
- && (result = XSYMBOL (result)->function, SYMBOLP (result)))
+ && (result = SVAR (XSYMBOL (result), function), SYMBOLP (result)))
result = indirect_function (result);
if (!EQ (result, Qunbound))
return result;
{
/* We must relocate the string data. */
ptrdiff_t nchars = SCHARS (array);
- unsigned char *str;
USE_SAFE_ALLOCA;
+ unsigned char *str = SAFE_ALLOCA (nbytes);
- SAFE_ALLOCA (str, unsigned char *, nbytes);
memcpy (str, SDATA (array), nbytes);
allocate_string_data (XSTRING (array), nchars,
nbytes + new_bytes - prev_bytes);
defsubr (&Ssubr_arity);
defsubr (&Ssubr_name);
- XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
+ SVAR (XSYMBOL (Qwholenump), function) = SVAR (XSYMBOL (Qnatnump), function);
DEFVAR_LISP ("most-positive-fixnum", Vmost_positive_fixnum,
doc: /* The largest value that is representable in a Lisp integer. */);