fix memory leak in singeli arith fallback & each fills

This commit is contained in:
dzaima 2022-01-12 16:10:41 +02:00
parent 3536c351fa
commit 5d3c801fb5
2 changed files with 4 additions and 4 deletions

View File

@ -236,9 +236,9 @@ static f64 pfmod(f64 a, f64 b) {
u8 t = v(x)->type;
return IS_SLICE(t)? c(TySlice,x)->a : c(TyArr,x)->a;
}
#define SI_AA(N,S,BASE) R##S(x); usz rlen=avx2_##N##AA##_##S((void*)wp, (void*)xp, (void*)rp, ia); if(RARE(rlen!=ia)) goto BASE; dec(w);dec(x);return r;
#define SI_SA_I(N,S,W,BASE) R##S(x); usz rlen=avx2_##N##SA##_##S((W).u, (void*)xp, (void*)rp, ia); if(RARE(rlen!=ia)) goto BASE; dec(w);dec(x);return r;
#define SI_AS_I(N,S,X,BASE) R##S(w); usz rlen=avx2_##N##AS##_##S((void*)wp, (X).u, (void*)rp, ia); if(RARE(rlen!=ia)) goto BASE; dec(w);dec(x);return r;
#define SI_AA(N,S,BASE) R##S(x); usz rlen=avx2_##N##AA##_##S((void*)wp, (void*)xp, (void*)rp, ia); if(RARE(rlen!=ia)) { dec(r); goto BASE; } dec(w);dec(x);return r;
#define SI_SA_I(N,S,W,BASE) R##S(x); usz rlen=avx2_##N##SA##_##S((W).u, (void*)xp, (void*)rp, ia); if(RARE(rlen!=ia)) { dec(r); goto BASE; } dec(w);dec(x);return r;
#define SI_AS_I(N,S,X,BASE) R##S(w); usz rlen=avx2_##N##AS##_##S((void*)wp, (X).u, (void*)rp, ia); if(RARE(rlen!=ia)) { dec(r); goto BASE; } dec(w);dec(x);return r;
#define SI_SA(NAME, EXPR) \
void* xp = tyany_ptr(x); \
switch(xe) { default: UD; \

View File

@ -27,7 +27,7 @@ static inline B arith_recd(BBB2B f, B w, B x) {
if (noFill(fx)) return eachd_fn(f, bi_N, w, x);
B fw = getFillQ(w);
B r = eachd_fn(f, bi_N, w, x);
if (noFill(fw)) return r;
if (noFill(fw)) { dec(fx); return r; }
if (CATCH) { freeThrown(); return r; }
B fr = f(bi_N, fw, fx);
popCatch();