summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-20 17:42:56 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-20 17:42:56 -0800
commit1c9044fb047cadde7e4efa2b110f6a6a80962d1a (patch)
tree48376683f5d2d94dd259ec778e9e771ba020fc47 /ChangeLog
parentf16d4a0947c00f5256aad67ddca906948a25b4a4 (diff)
downloadtxr-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--ChangeLog24
1 files changed, 24 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c5851292..f486688c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.