aboutsummaryrefslogtreecommitdiffstats
path: root/admin/notes/java
diff options
context:
space:
mode:
authorStefan Monnier2023-12-27 15:06:32 -0500
committerStefan Monnier2024-01-04 16:37:01 -0500
commit2ef6e40da88d5b4f070e339a2210f5751ab6a7cb (patch)
treec5669492d32dba2bffe119cc0c2c72b327d994ee /admin/notes/java
parent02edbc88a1210b8d5a3e62ca4f03ffd17b23cbf7 (diff)
downloademacs-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