diff --git a/runtime/runtime.c b/runtime/runtime.c index 140be4ba3..a10d81635 100644 --- a/runtime/runtime.c +++ b/runtime/runtime.c @@ -37,12 +37,6 @@ void __post_gc_subst () { } assert(__gc_stack_top != 0); \ assert(__builtin_frame_address(0) <= (void *)__gc_stack_top); -//#define PRE_GC() \ -// bool flag = true; \ -// if (__gc_stack_top == 0) { flag = false; } \ -// if (!flag) __gc_stack_top = (size_t)__builtin_frame_address(0); \ -// assert(__builtin_frame_address(0) <= (void *)__gc_stack_top); - #define POST_GC() \ assert(__builtin_frame_address(0) <= (void *)__gc_stack_top); \ __post_gc(); \ @@ -52,9 +46,6 @@ void __post_gc_subst () { } assert(false); \ } -//#define POST_GC() \ -// if (!flag) { __gc_stack_top = 0; } - extern size_t __gc_stack_top, __gc_stack_bottom; static void vfailure (char *s, va_list args) { @@ -434,13 +425,13 @@ static void stringcat (void *p) { char *tag = de_hash(TO_SEXP(p)->tag); if (strcmp(tag, "cons") == 0) { - data *b = a; + sexp *b = (sexp *)a; while (LEN(b->data_header)) { stringcat((void *)((int *)b->contents)[0]); - b = (data *)((int *)b->contents)[1]; - if (!UNBOXED(b)) { - b = TO_DATA(b); + int next_b = ((int *)b->contents)[1]; + if (!UNBOXED(next_b)) { + b = TO_SEXP(next_b); } else break; } } else printStringBuf("*** non-list data_header: %s ***", tag);