Browse Source

Quick workaround for crashing destructor on Mingw32

closes #10137
sfan5 3 years ago
parent
commit
70df3d54f3
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/script/common/c_converter.cpp

+ 9 - 1
src/script/common/c_converter.cpp

@@ -457,9 +457,17 @@ size_t read_stringlist(lua_State *L, int index, std::vector<std::string> *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<u64> warned_msgs;
+#endif
+
 bool check_field_or_nil(lua_State *L, int index, int type, const char *fieldname)
 {
-	static thread_local std::set<u64> warned_msgs;
+#if !defined(__MINGW32__) || defined(__MINGW64__)
+	thread_local std::set<u64> warned_msgs;
+#endif
 
 	int t = lua_type(L, index);
 	if (t == LUA_TNIL)