1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-16 09:50:25 +00:00

Avoid assertion violations in nonsensical calls to 'signal'

* src/eval.c (Fsignal): If both arguments are nil, replace the
first one with 'error', to avoid assertion violations further
down the line.  (Bug#32961)
This commit is contained in:
Eli Zaretskii 2018-10-07 17:45:12 +03:00
parent b99192fe24
commit 14c032d5f8

View File

@ -1503,7 +1503,7 @@ DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
This function does not return.
An error symbol is a symbol with an `error-conditions' property
that is a list of condition names.
that is a list of condition names. The symbol should be non-nil.
A handler for any of those names will get to handle this signal.
The symbol `error' should normally be one of them.
@ -1515,6 +1515,9 @@ See also the function `condition-case'. */
attributes: noreturn)
(Lisp_Object error_symbol, Lisp_Object data)
{
/* If they call us with nonsensical arguments, produce "peculiar error". */
if (NILP (error_symbol) && NILP (data))
error_symbol = Qerror;
signal_or_quit (error_symbol, data, false);
eassume (false);
}