From f3157d94d1dfc219962bd598bb5cb80f482bb594 Mon Sep 17 00:00:00 2001 From: olowo726 Date: Thu, 11 Jul 2019 17:59:37 +0200 Subject: [PATCH] Made converters thread_local instead of local to function for performance --- runtime/Cpp/runtime/src/support/StringUtils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/Cpp/runtime/src/support/StringUtils.h b/runtime/Cpp/runtime/src/support/StringUtils.h index d0a0472a0..49715287e 100644 --- a/runtime/Cpp/runtime/src/support/StringUtils.h +++ b/runtime/Cpp/runtime/src/support/StringUtils.h @@ -22,7 +22,7 @@ namespace antlrcpp { inline std::string utf32_to_utf8(T const& data) { // Don't make the converter static or we have to serialize access to it. - UTF32Converter converter; + thread_local UTF32Converter converter; #if defined(_MSC_VER) && _MSC_VER >= 1900 && _MSC_VER < 2000 auto p = reinterpret_cast(data.data()); @@ -34,7 +34,7 @@ namespace antlrcpp { inline UTF32String utf8_to_utf32(const char* first, const char* last) { - UTF32Converter converter; + thread_local UTF32Converter converter; #if defined(_MSC_VER) && _MSC_VER >= 1900 && _MSC_VER < 2000 auto r = converter.from_bytes(first, last);