diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-11-18 13:27:18 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-11-18 13:27:18 -0800 |
commit | 469c98066160e682eda0fd2ba7a189e388ab9257 (patch) | |
tree | 38fca8299308a1d4e3ed1f83a8b0048bc0d05999 /ChangeLog | |
parent | 6d2bc0b88c6f0060bce5c79ee5879cf4ce77a35f (diff) | |
download | txr-469c98066160e682eda0fd2ba7a189e388ab9257.tar.gz txr-469c98066160e682eda0fd2ba7a189e388ab9257.tar.bz2 txr-469c98066160e682eda0fd2ba7a189e388ab9257.zip |
* gc.c (mark_mem_region): Use the Valgrind API only to mark
the type field as accessible, not the whole object that
we are checking. Marking the whole object accessible hides
uninitialized field bugs!
* lib.c: And found a bug already: lazy_str was not completely
initializing all of the object fields (ls.prefix, ls.list)
before invoking memory allocating operations, making it
possible for the garbage collector to encounter uninitialized
object areas.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1,5 +1,18 @@ 2011-11-18 Kaz Kylheku <kaz@kylheku.com> + * gc.c (mark_mem_region): Use the Valgrind API only to mark + the type field as accessible, not the whole object that + we are checking. Marking the whole object accessible hides + uninitialized field bugs! + + * lib.c: And found a bug already: lazy_str was not completely + initializing all of the object fields (ls.prefix, ls.list) + before invoking memory allocating operations, making it + possible for the garbage collector to encounter uninitialized + object areas. + +2011-11-18 Kaz Kylheku <kaz@kylheku.com> + Added a JSON parsing test case. This flushed out a bug which crashed the garbage collector (uninitialized fields in function objects). |