From 3977849bc59a4283a44d359df8f35d223d2c6939 Mon Sep 17 00:00:00 2001 From: dzaima Date: Fri, 19 May 2023 12:57:23 +0300 Subject: [PATCH] =?UTF-8?q?fix=20"=5Fm=E2=86=90=C2=A8=E2=8B=844=20m=C2=B4?= =?UTF-8?q?=E2=9F=A8=E2=9F=A9"=20and=20"4=2010=C2=B4=E2=9F=A8=E2=9F=A9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/fold.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/builtins/fold.c b/src/builtins/fold.c index db12f57d..edef480b 100644 --- a/src/builtins/fold.c +++ b/src/builtins/fold.c @@ -235,15 +235,16 @@ B fold_c1(Md1D* d, B x) { B f = d->f; B fold_c2(Md1D* d, B w, B x) { B f = d->f; if (isAtm(x) || RNK(x)!=1) thrF("ยด: ๐•ฉ must be a list (%H โ‰ก โ‰ข๐•ฉ)", x); - if (RARE(!isFun(f))) { dec(w); decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); } usz ia = IA(x); + if (RARE(ia==0)) { decG(x); return w; } + if (RARE(!isFun(f))) { dec(w); decG(x); if (isMd(f)) thrM("Calling a modifier"); return inc(f); } + u8 xe = TI(x,elType); if (v(f)->flags) { u8 rtid = v(f)->flags-1; if (rtid==n_ltack) { - B r = w; - if (ia) { dec(w); r=IGet(x, 0); } - decG(x); return r; + B r = IGet(x, 0); + dec(w); decG(x); return r; } if (rtid==n_rtack) { decG(x); return w; } if (!isF64(w) || xe>el_f64) goto base; @@ -265,8 +266,8 @@ B fold_c2(Md1D* d, B w, B x) { B f = d->f; f64 r = sum_fns[sel](tyany_ptr(x), ia, wf); decG(x); return m_f64(r); } - if (rtid==n_floor) { f64 r=wf; if (ia>0) { f64 m=min_fns[xe-el_i8](tyany_ptr(x), ia); if (m0) { f64 m=max_fns[xe-el_i8](tyany_ptr(x), ia); if (m>r) r=m; } decG(x); return m_f64(r); } // โŒˆ + if (rtid==n_floor) { f64 r=wf; f64 m=min_fns[xe-el_i8](tyany_ptr(x), ia); if (mr) r=m; decG(x); return m_f64(r); } // โŒˆ i32 wi = wf; if (rtid==n_mul | rtid==n_and) { // ร—/โˆง void *xv = tyany_ptr(x);