mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
Replace explicit recursion by heap allocations in sexp_mark_one code. This prevents crashes caused by stack overflow. In particular, fixes issue #601. As an optimization, allocate a fixed sized stack buffer first, which should be enough for "normal" uses. When that stack overflows, switch to heap. Also, store "ranges" on the stack, instead of the actual sexp's, using the fact that sexp's of a single parent are continous in memory. This patch doesn't remove recursion on the context saves because it didn't seem like they overflow in practice. But changing that is simple having the stack interface. |
||
---|---|---|
.. | ||
bignum.h | ||
eval.h | ||
features.h | ||
gc_heap.h | ||
sexp-huff.h | ||
sexp-hufftabdefs.h | ||
sexp-hufftabs.c | ||
sexp-hufftabs.h | ||
sexp-unhuff.h | ||
sexp.h |