diff options
| author | Stefan Monnier | 2023-12-27 15:06:32 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2024-01-04 16:37:01 -0500 |
| commit | 2ef6e40da88d5b4f070e339a2210f5751ab6a7cb (patch) | |
| tree | c5669492d32dba2bffe119cc0c2c72b327d994ee /admin/notes/java | |
| parent | 02edbc88a1210b8d5a3e62ca4f03ffd17b23cbf7 (diff) | |
| download | emacs-2ef6e40da88d5b4f070e339a2210f5751ab6a7cb.tar.gz emacs-2ef6e40da88d5b4f070e339a2210f5751ab6a7cb.zip | |
(signal_or_quit): Preserve error object identity
Make sure we build the (ERROR-SYMBOL . ERROR-DATA) object only once
when signaling an error, so that its `eq` identity can be used.
It also gets us a tiny bit closer to having real "error objects"
like in most other current programming languages.
* src/eval.c (maybe_call_debugger): Change arglist to receive the error
object instead of receiving the signal and the data separately.
(signal_or_quit): Build the error object right at the beginning so it
stays `eq` to itself.
Rename the `keyboard_quit` arg to `continuable` so say what it does
rather than what it's used for.
(signal_quit_p): Change arg to be the error object rather than just the
error-symbol.
* src/keyboard.c (cmd_error_internal, menu_item_eval_property_1):
Adjust calls to `signal_quit_p` accordingly.
* test/src/eval-tests.el (eval-tests--error-id): New test.
Diffstat (limited to 'admin/notes/java')
0 files changed, 0 insertions, 0 deletions