1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-10 17:02:06 -07:00

Fix signal calls where the data argument is not a list

* test/src/thread-tests.el (threads-join-error):
* test/src/emacs-module-resources/mod-test.c (Fmod_test_signal):
* src/print.c (print_bind_overrides):
* lisp/url/url-future.el (url-future-finish, url-future-errored)
(url-future-call, url-future-cancel): Make sure signal's data is a list.

* test/src/emacs-module-tests.el (mod-test-non-local-exit-signal-test):
Adjust accordingly.
This commit is contained in:
Stefan Monnier 2026-03-08 23:26:58 -04:00
parent 3118a8c8b1
commit ea5f15d096
6 changed files with 19 additions and 13 deletions

View file

@ -58,7 +58,7 @@
(defun url-future-finish (url-future &optional status)
(if (url-future-done-p url-future)
(signal 'error 'url-future-already-done)
(signal 'error '(url-future-already-done))
(setf (url-future-status url-future) (or status t))
;; the status must be such that the future was completed
;; to run the callback
@ -69,7 +69,7 @@
(defun url-future-errored (url-future errorcons)
(if (url-future-done-p url-future)
(signal 'error 'url-future-already-done)
(signal 'error '(url-future-already-done))
(setf (url-future-status url-future) 'error)
(setf (url-future-value url-future) errorcons)
(funcall (or (url-future-errorback url-future) 'ignore)
@ -77,7 +77,7 @@
(defun url-future-call (url-future)
(if (url-future-done-p url-future)
(signal 'error 'url-future-already-done)
(signal 'error '(url-future-already-done))
(let ((ff (url-future-value url-future)))
(when (functionp ff)
(condition-case catcher
@ -93,7 +93,7 @@
(defun url-future-cancel (url-future)
(if (url-future-done-p url-future)
(signal 'error 'url-future-already-done)
(signal 'error '(url-future-already-done))
(url-future-finish url-future 'cancel)))
(define-obsolete-function-alias 'url-future-cancelled-p

View file

@ -708,7 +708,7 @@ print_bind_overrides (Lisp_Object overrides)
if (EQ (overrides, Qt))
print_bind_all_defaults ();
else if (!CONSP (overrides))
xsignal (Qwrong_type_argument, Qconsp);
xsignal2 (Qwrong_type_argument, Qconsp, overrides);
else
{
while (!NILP (overrides))
@ -717,7 +717,7 @@ print_bind_overrides (Lisp_Object overrides)
if (EQ (setting, Qt))
print_bind_all_defaults ();
else if (!CONSP (setting))
xsignal (Qwrong_type_argument, Qconsp);
xsignal2 (Qwrong_type_argument, Qconsp, setting);
else
{
Lisp_Object key = XCAR (setting),
@ -729,7 +729,7 @@ print_bind_overrides (Lisp_Object overrides)
}
if (!NILP (XCDR (overrides)) && !CONSP (XCDR (overrides)))
xsignal (Qwrong_type_argument, Qconsp);
xsignal2 (Qwrong_type_argument, Qconsp, overrides);
overrides = XCDR (overrides);
}
}

View file

@ -1892,7 +1892,7 @@ Ensure that the issues from bug#66546 are fixed."
(error err))
'missing))
(signal-write-failed (&rest _)
(signal 'file-error "Write failed")))
(signal 'file-error '("Write failed"))))
(let* (;; Sanitize environment.
;; The tests below test text for equality, so we need to

View file

@ -114,8 +114,14 @@ Fmod_test_signal (emacs_env *env, ptrdiff_t nargs, emacs_value args[],
void *data)
{
assert (env->non_local_exit_check (env) == emacs_funcall_exit_return);
env->non_local_exit_signal (env, env->intern (env, "error"),
env->make_integer (env, 56));
emacs_value cargs[2] = {
env->make_integer (env, 56),
env->intern (env, "nil")
};
env->non_local_exit_signal (
env, env->intern (env, "error"),
env->funcall (env, env->intern (env, "cons"),
2, cargs));
return NULL;
}

View file

@ -121,7 +121,7 @@ changes."
(setq handler-err err
backtrace (with-output-to-string (backtrace))))))
(mod-test-signal)))
(should (equal handler-err '(error . 56)))
(should (equal handler-err '(error 56)))
(should (string-match-p
(rx bol " mod-test-signal()" eol)
backtrace))))

View file

@ -122,10 +122,10 @@
(skip-unless (featurep 'threads))
(let ((thread (make-thread #'threads-thread-sleeps))
err)
(thread-signal thread 'error "Error signal for thread")
(thread-signal thread 'error '("Error signal for thread"))
(thread-yield)
(setq err (should-error (thread-join thread)))
(should (equal err '(error . "Error signal for thread")))))
(should (equal err '(error "Error signal for thread")))))
(defvar threads-test-binding nil)