diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2013-11-21 22:07:55 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2013-11-21 22:07:55 -0800 |
commit | 8680ae708b8dff9c52f23e8b47f06320f30b8c95 (patch) | |
tree | d2c2a17945ec290f6922c730d067cf74ce55810d /ChangeLog | |
parent | fb817f77ecad88117b4c5a98c1c8b6adbf492dec (diff) | |
download | txr-8680ae708b8dff9c52f23e8b47f06320f30b8c95.tar.gz txr-8680ae708b8dff9c52f23e8b47f06320f30b8c95.tar.bz2 txr-8680ae708b8dff9c52f23e8b47f06320f30b8c95.zip |
Nasty bug fixed: @(accept) from inside a @(collect) was found not to
propagate bindings. The culprit? The bindings_coll variable in the
v_collect function being indeterminate by the well-documented and
understood action of setjmp. Marking the bindings_coll variable
volatile instantly fixed it. I reviewed this code to find any other
instance of this oversight.
* match.c (v_skip, v_collect): Mark some local variable volatile:
precisely those which are used after possibly returning via an
unwind, and which might have been modified since setting up
the unwind block.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,17 @@ +2013-11-21 Kaz Kylheku <kaz@kylheku.com> + + Nasty bug fixed: @(accept) from inside a @(collect) was found not to + propagate bindings. The culprit? The bindings_coll variable in the + v_collect function being indeterminate by the well-documented and + understood action of setjmp. Marking the bindings_coll variable + volatile instantly fixed it. I reviewed this code to find any other + instance of this oversight. + + * match.c (v_skip, v_collect): Mark some local variable volatile: + precisely those which are used after possibly returning via an + unwind, and which might have been modified since setting up + the unwind block. + 2013-11-05 Kaz Kylheku <kaz@kylheku.com> * genvim.txr: Handle symbols whose C names end with _star_s, |