fix refcount errors in merge
This commit is contained in:
parent
9ae1ab80cf
commit
43d2946447
@ -422,7 +422,7 @@ B bqn_merge(B x) { // consumes
|
|||||||
ur xr = rnk(x);
|
ur xr = rnk(x);
|
||||||
if (xia==0) {
|
if (xia==0) {
|
||||||
B xf = getFillE(x);
|
B xf = getFillE(x);
|
||||||
if (isAtm(xf)) { dec(xf); return x; }
|
if (isAtm(xf)) { dec(x); dec(xf); return x; }
|
||||||
i32 xfr = rnk(xf);
|
i32 xfr = rnk(xf);
|
||||||
B xff = getFillQ(xf);
|
B xff = getFillQ(xf);
|
||||||
Arr* r = m_fillarrp(0);
|
Arr* r = m_fillarrp(0);
|
||||||
@ -433,6 +433,7 @@ B bqn_merge(B x) { // consumes
|
|||||||
memcpy (rsh , a(x)->sh, xr *sizeof(usz));
|
memcpy (rsh , a(x)->sh, xr *sizeof(usz));
|
||||||
if(xfr)memcpy(rsh+xr, a(xf)->sh, xfr*sizeof(usz));
|
if(xfr)memcpy(rsh+xr, a(xf)->sh, xfr*sizeof(usz));
|
||||||
}
|
}
|
||||||
|
dec(x); dec(xf);
|
||||||
return taga(r);
|
return taga(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user