diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-12-20 17:42:56 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-12-20 17:42:56 -0800 |
commit | 1c9044fb047cadde7e4efa2b110f6a6a80962d1a (patch) | |
tree | 48376683f5d2d94dd259ec778e9e771ba020fc47 /txr.c | |
parent | f16d4a0947c00f5256aad67ddca906948a25b4a4 (diff) | |
download | txr-1c9044fb047cadde7e4efa2b110f6a6a80962d1a.tar.gz txr-1c9044fb047cadde7e4efa2b110f6a6a80962d1a.tar.bz2 txr-1c9044fb047cadde7e4efa2b110f6a6a80962d1a.zip |
Streamlining exception handling macros a little bit.
* eval.c (op_unwind_protect): Use uw_simple_catch_begin,
and remove the uw_catch (exsym, exvals) clause. Put
explicit braces around the unwind code even though it
is only one statement.
* match.c (do_txeval): Got rid of empty uw_unwind clause.
This is not needed any longer.
(v_try): Got rid of explicit uw_do_unwind calls.
* unwind.h (uw_simple_catch_begin): New macro.
(uw_do_unwind): Macro removed.
(uw_catch): Added goto uw_unwind_label at the front.
This way if the previous clause falls through,
control goes to the unwind logic.
(uw_unwind): Got rid of initial break. Previous
clause should fall through to unwind logic,
whether it is the main clause, or one of the catches.
(uw_catch_end): Default case aborts, because
we don't expect this.
Diffstat (limited to 'txr.c')
0 files changed, 0 insertions, 0 deletions