summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro J. Estébanez <pedrojrulez@gmail.com>2023-11-27 13:01:37 +0100
committerPedro J. Estébanez <pedrojrulez@gmail.com>2023-11-27 13:01:37 +0100
commitcfa7e72057c7728e01fbf3f492b28174c06f9e85 (patch)
treec51ec1a10a293d11e47470d9764c6064525acd57
parent5df98679672c12d96b4ac4d96ee17f1559207401 (diff)
downloadredot-engine-cfa7e72057c7728e01fbf3f492b28174c06f9e85.tar.gz
Fix GDScript thread-exit routine assuming thread-enter was called
-rw-r--r--modules/gdscript/gdscript.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index 05c2558417..87f21bf568 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -2106,6 +2106,12 @@ void GDScriptLanguage::thread_enter() {
}
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();
bool destroy = false;