Ver Fonte

Fix GDScript thread-exit routine assuming thread-enter was called

Pedro J. Estébanez há 1 ano atrás
pai
commit
cfa7e72057
1 ficheiros alterados com 6 adições e 0 exclusões
  1. 6 0
      modules/gdscript/gdscript.cpp

+ 6 - 0
modules/gdscript/gdscript.cpp

@@ -2106,6 +2106,12 @@ void GDScriptLanguage::thread_enter() {
 }
 }
 
 
 void GDScriptLanguage::thread_exit() {
 void GDScriptLanguage::thread_exit() {
+	// This thread may have been created before GDScript was up
+	// (which also means it can't have run any GDScript code at all).
+	if (!GDScript::func_ptrs_to_update_thread_local) {
+		return;
+	}
+
 	GDScript::_fixup_thread_function_bookkeeping();
 	GDScript::_fixup_thread_function_bookkeeping();
 
 
 	bool destroy = false;
 	bool destroy = false;