From 7f46de18fc81d355e1a1a2123746bc14836e45bb Mon Sep 17 00:00:00 2001 From: dzaima Date: Sat, 20 May 2023 01:27:14 +0300 Subject: [PATCH] add missed refcount decrements --- src/builtins/fold.c | 2 +- src/builtins/sfns.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/builtins/fold.c b/src/builtins/fold.c index edef480b..4fa751df 100644 --- a/src/builtins/fold.c +++ b/src/builtins/fold.c @@ -71,7 +71,7 @@ static f64 (*const sum_fns[])(void*, usz, f64) = { sum_i8, sum_i16, sum_i32, sum B sum_c1(B t, B x) { if (isAtm(x) || RNK(x)!=1) thrF("•math.Sum: Argument must be a list (%H ≡ ≢𝕩)", x); usz ia = IA(x); - if (ia==0) return m_f64(0); + if (ia==0) { decG(x); return m_f64(0); } u8 xe = TI(x,elType); if (!elNum(xe)) { x = any_squeeze(x); xe = TI(x,elType); diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index be82c591..99f0a6bf 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -751,7 +751,7 @@ B join_c1(B t, B x) { cam += cr < rm ? 1 : *csh++; if (!eqShPart(csh, esh, rm-1)) thrF("∾: Item trailing shapes must be equal (contained arrays with shapes %H and %H)", x0, c); } - if (SFNS_FILLS && !noFill(rf) && !fillEqualsGetFill(rf, c)) rf = bi_noFill; + if (SFNS_FILLS && !noFill(rf) && !fillEqualsGetFill(rf, c)) { dec(rf); rf = bi_noFill; } } if (rm==0) thrM("∾: Some item rank must be equal or greater than rank of argument"); @@ -837,7 +837,7 @@ B join_c1(B t, B x) { ur cr=0; usz* sh=NULL; if (!isAtm(c)) { cr=RNK(c); sh=SH(c); } if (cr != r1-rd) thrF("∾: Incompatible item ranks", base, c); if (!eqShPart(rd?tsh0:tsh, sh, cr)) thrF("∾: Incompatible item shapes (contained arrays with shapes %H and %H along axis %i)", base, c, a); - if (SFNS_FILLS && !noFill(rf) && !fillEqualsGetFill(rf, c)) rf = bi_noFill; + if (SFNS_FILLS && !noFill(rf) && !fillEqualsGetFill(rf, c)) { dec(rf); rf = bi_noFill; } } } tr -= a0;