ref: 2c32764546648d5a2d11827cb1ad8ed017e09cad
parent: f498a2c123fb5161dd63e8d947c52de06e93eb0c
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Sun Apr 2 19:18:59 EDT 2023
double the stack size right away instead of trying to play smart
--- a/cvalues.c
+++ b/cvalues.c
@@ -1208,12 +1208,12 @@
*pt = T_FIXNUM;
return 1;
}else if(iscprim(a)){- cp = (cprim_t*)ptr(a);
+ cp = ptr(a);
*pp = cp_data(cp);
*pt = cp_numtype(cp);
return 1;
}else if(iscvalue(a)){- cv = (cvalue_t*)ptr(a);
+ cv = ptr(a);
*pp = cv_data(cv);
*pt = cv_class(cv)->numtype;
return valid_numtype(*pt);
--- a/flisp.c
+++ b/flisp.c
@@ -591,7 +591,7 @@
static void
grow_stack(void)
{- size_t newsz = N_STACK + (N_STACK>>1);
+ size_t newsz = N_STACK * 2;
value_t *ns = realloc(Stack, newsz*sizeof(value_t));
if(ns == nil)
lerrorf(MemoryError, "stack overflow");
--
⑨