From c2e4110ae1f43fad70fded02031408d7533c88b6 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Fri, 29 Jul 2022 19:49:45 +0800 Subject: [PATCH] fix: fix mbs2ucs4 issue --- source/os/src/osString.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/os/src/osString.c b/source/os/src/osString.c index d6b0bafe8f..0642bd768b 100644 --- a/source/os/src/osString.c +++ b/source/os/src/osString.c @@ -161,6 +161,13 @@ void taosConvDestroy() { } void taosAcquireConv(int32_t *idx) { + if (0 == gConvMaxNum) { + gConv = taosMemoryCalloc(1, sizeof(SConv)); + gConv[0].conv = iconv_open(DEFAULT_UNICODE_ENCODEC, tsCharset); + *idx = 0; + return; + } + while (true) { int32_t used = atomic_add_fetch_32(&convUsed, 1); if (used > gConvMaxNum) { @@ -189,6 +196,12 @@ void taosAcquireConv(int32_t *idx) { } void taosReleaseConv(int32_t idx) { + if (0 == gConvMaxNum) { + iconv_close(gConv[0].conv); + taosMemoryFreeClear(gConv); + return; + } + atomic_store_8(&gConv[idx].inUse, 0); }