From 70df3d54f37c280f7afe60f6e964b8406577f39f Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 9 Jul 2020 22:01:46 +0200 Subject: Quick workaround for crashing destructor on Mingw32 closes #10137 --- src/script/common/c_converter.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp index de0cdfbf4..eb6ab5331 100644 --- a/src/script/common/c_converter.cpp +++ b/src/script/common/c_converter.cpp @@ -457,9 +457,17 @@ size_t read_stringlist(lua_State *L, int index, std::vector *result Table field getters */ +#if defined(__MINGW32__) && !defined(__MINGW64__) +/* MinGW 32-bit somehow crashes in the std::set destructor when this + * variable is thread-local, so just don't do that. */ +static std::set warned_msgs; +#endif + bool check_field_or_nil(lua_State *L, int index, int type, const char *fieldname) { - static thread_local std::set warned_msgs; +#if !defined(__MINGW32__) || defined(__MINGW64__) + thread_local std::set warned_msgs; +#endif int t = lua_type(L, index); if (t == LUA_TNIL) -- cgit v1.2.3