From 43d294644774e3e2ff8dea3e1bc874e666605e48 Mon Sep 17 00:00:00 2001 From: dzaima Date: Fri, 16 Jul 2021 23:11:34 +0300 Subject: [PATCH] fix refcount errors in merge --- src/core/stuff.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/stuff.c b/src/core/stuff.c index 6f1249c3..faec7d25 100644 --- a/src/core/stuff.c +++ b/src/core/stuff.c @@ -422,7 +422,7 @@ B bqn_merge(B x) { // consumes ur xr = rnk(x); if (xia==0) { B xf = getFillE(x); - if (isAtm(xf)) { dec(xf); return x; } + if (isAtm(xf)) { dec(x); dec(xf); return x; } i32 xfr = rnk(xf); B xff = getFillQ(xf); Arr* r = m_fillarrp(0); @@ -433,6 +433,7 @@ B bqn_merge(B x) { // consumes memcpy (rsh , a(x)->sh, xr *sizeof(usz)); if(xfr)memcpy(rsh+xr, a(xf)->sh, xfr*sizeof(usz)); } + dec(x); dec(xf); return taga(r); }