From 1b60c522b02c07bfdd6e283979acff5c784d1b15 Mon Sep 17 00:00:00 2001 From: hong Date: Sat, 25 May 2019 15:32:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E8=AE=A1=E6=95=B0BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3rd/lua/lstring.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/3rd/lua/lstring.c b/3rd/lua/lstring.c index 7ad062f9..1fcf8ca3 100644 --- a/3rd/lua/lstring.c +++ b/3rd/lua/lstring.c @@ -335,8 +335,11 @@ markref(struct ssm_ref *r, TString *s, int changeref) { unsigned int h = s->hash; int slot = lmod(h, r->hsize); TString * hs = r->hash[slot]; - if (hs == s) + if (hs == s){ + if (changeref) + DEC_SREF(s); return; + } ++r->nuse; if (r->nuse >= r->hsize && r->hsize <= MAX_INT/2) { expand_ref(r, changeref); @@ -346,6 +349,8 @@ markref(struct ssm_ref *r, TString *s, int changeref) { if (hs != NULL) { if (hs == s) { --r->nuse; + if (changeref) + DEC_SREF(s); return; } insert_ref(r, hs);