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 /ChangeLog | |
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 'ChangeLog')
-rw-r--r-- | ChangeLog | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -1,5 +1,29 @@ 2011-12-20 Kaz Kylheku <kaz@kylheku.com> + 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. + +2011-12-20 Kaz Kylheku <kaz@kylheku.com> + Critical regression. Hash lookup was crashing on some platforms due to negative hashing values being reduced modulo table size to a negative array index. |