From 168db4cf01a34452df3cd667d8c131addc7f736a Mon Sep 17 00:00:00 2001 From: dzaima Date: Thu, 29 Dec 2022 22:59:31 +0200 Subject: [PATCH] fix rtWrap_unwrap refcounting --- src/rtwrap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rtwrap.c b/src/rtwrap.c index 07a1e3d6..9e928c24 100644 --- a/src/rtwrap.c +++ b/src/rtwrap.c @@ -258,11 +258,11 @@ B rtWrap_wrap(B t, bool nnbi) { #endif return t; } -B rtWrap_unwrap(B x) { +B rtWrap_unwrap(B x) { // consumes x if (!isVal(x)) return x; - if (TY(x)==t_funWrap) { B r = c(WFun,x)->v; dec(x); return r; } - if (TY(x)==t_md1Wrap) { B r = c(WMd1,x)->v; dec(x); return r; } - if (TY(x)==t_md2Wrap) { B r = c(WMd2,x)->v; dec(x); return r; } + if (TY(x)==t_funWrap) { B r = c(WFun,x)->v; decG(x); return inc(r); } + if (TY(x)==t_md1Wrap) { B r = c(WMd1,x)->v; decG(x); return inc(r); } + if (TY(x)==t_md2Wrap) { B r = c(WMd2,x)->v; decG(x); return inc(r); } return x; }