summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-01-22 16:21:13 -0800
committerKaz Kylheku <kaz@kylheku.com>2023-01-22 16:21:13 -0800
commit872aea5725559cbed6dd268032ea039f9f33e831 (patch)
treed7ebeab206a6bd2c75b5b9fab33c787a7a337e60 /stdlib
parent366a7fba840293f54ae49108f4bc5d3d94c848c4 (diff)
downloadtxr-872aea5725559cbed6dd268032ea039f9f33e831.tar.gz
txr-872aea5725559cbed6dd268032ea039f9f33e831.tar.bz2
txr-872aea5725559cbed6dd268032ea039f9f33e831.zip
bugfix: gc issue in parser interface.
* parser.c (lisp_parse_impl): Add a call to gc_hint, to protect the parser object from garbage collection. We allocate this object, and then use a raw pointer to the parser, which leaves it exposed. This resulted in a crash of the tests/010/json.tl test case (which runs with the --gc-debug mode). The crash doesn't occur in a regular build; it reproduced in build configured with --no-gen-gc. Possibly, why it doesn't repro under generational GC is that the hash table which associates streams and parsers may be moving the objects into the mature generation.
Diffstat (limited to 'stdlib')
0 files changed, 0 insertions, 0 deletions