1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 14:40:54 -08:00

Add an eassert back to XSYMBOL

Problem reported by Alan Mackenzie in:
https://lists.gnu.org/r/emacs-devel/2024-01/msg00755.html
* src/lisp.h (XSYMBOL): If the arg is not a bare symbol, then
eassert (symbols_with_pos_enabled).  This shouldn’t affect code
generated for regular builds, and could catch caller errors in
debug builds.  For debug builds although this slows things down
XSYMBOL should still be faster than it was the day before
yesterday, as there’s still no need to eassert (SYMBOLP	(a)).
This commit is contained in:
Paul Eggert 2024-01-21 20:34:03 -08:00
parent df7c6211cb
commit 088afa7e2f

View file

@ -1161,7 +1161,12 @@ XBARE_SYMBOL (Lisp_Object a)
INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
XSYMBOL (Lisp_Object a)
{
return XBARE_SYMBOL (BARE_SYMBOL_P (a) ? a : XSYMBOL_WITH_POS (a)->sym);
if (!BARE_SYMBOL_P (a))
{
eassert (symbols_with_pos_enabled);
a = XSYMBOL_WITH_POS (a)->sym;
}
return XBARE_SYMBOL (a);
}
INLINE Lisp_Object