mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
avoid gc recursion on non-pointers
This commit is contained in:
parent
110487b9b2
commit
7bbbb1fb2c
1 changed files with 1 additions and 1 deletions
2
gc.c
2
gc.c
|
@ -270,7 +270,7 @@ static void sexp_mark_one (sexp ctx, sexp* types, sexp x) {
|
||||||
if (len >= 0) {
|
if (len >= 0) {
|
||||||
p = (sexp*) (((char*)x) + sexp_type_field_base(t));
|
p = (sexp*) (((char*)x) + sexp_type_field_base(t));
|
||||||
q = p + len;
|
q = p + len;
|
||||||
while (p < q && ! (*q && sexp_pointerp(*q)))
|
while (p < q && (*q && sexp_pointerp(*q) ? sexp_markedp(*q) : 1))
|
||||||
q--; /* skip trailing immediates */
|
q--; /* skip trailing immediates */
|
||||||
while (p < q && *q == q[-1])
|
while (p < q && *q == q[-1])
|
||||||
q--; /* skip trailing duplicates */
|
q--; /* skip trailing duplicates */
|
||||||
|
|
Loading…
Add table
Reference in a new issue