add missed refcount decrements

This commit is contained in:
dzaima 2023-05-20 01:27:14 +03:00
parent c9e7dc9976
commit 7f46de18fc
2 changed files with 3 additions and 3 deletions

View File

@ -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) { B sum_c1(B t, B x) {
if (isAtm(x) || RNK(x)!=1) thrF("•math.Sum: Argument must be a list (%H ≡ ≢𝕩)", x); if (isAtm(x) || RNK(x)!=1) thrF("•math.Sum: Argument must be a list (%H ≡ ≢𝕩)", x);
usz ia = IA(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); u8 xe = TI(x,elType);
if (!elNum(xe)) { if (!elNum(xe)) {
x = any_squeeze(x); xe = TI(x,elType); x = any_squeeze(x); xe = TI(x,elType);

View File

@ -751,7 +751,7 @@ B join_c1(B t, B x) {
cam += cr < rm ? 1 : *csh++; 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 (!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"); 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); } 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 (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 (!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; tr -= a0;