summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-01-22 20:24:45 -0800
committerKaz Kylheku <kaz@kylheku.com>2016-01-22 20:24:45 -0800
commitaab13f6369fe8d1c1f6057ee1e0479ab8af45997 (patch)
tree039129a37dc092412010a2705af550b4c726b708 /match.c
parent41a513cf5d74413f6a1d5956eae6cc833c852abc (diff)
downloadtxr-aab13f6369fe8d1c1f6057ee1e0479ab8af45997.tar.gz
txr-aab13f6369fe8d1c1f6057ee1e0479ab8af45997.tar.bz2
txr-aab13f6369fe8d1c1f6057ee1e0479ab8af45997.zip
Semantics fix: unhandled exceptions must still unwind.
* unwind.c (unhandled_ex): New static structure. (unwind_to_exit_point): The code to print the unhandled exception info and bail the process is moved here out of uw_throw. We do this in the situation when we have an unhandled exception, which is represented by the fact that the exception pointer points to the unhandled_ex structure. (uw_throw): If unhandled hook isn't a function, we don't abort; we go through the unwinding and unhandled processing. Also, ditto if the unhandled function returns, ditto. Unhandled processing is entered by substituting unhandled_ex for the not-found exception, and allowing unwind_to_exit point to be called. * txr.1: Document new behavior for unhandled exceptions and *unhandled-hook*.
Diffstat (limited to 'match.c')
0 files changed, 0 insertions, 0 deletions