diff options
author | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2019-02-04 20:39:02 +0100 |
---|---|---|
committer | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2019-02-09 00:32:18 +0100 |
commit | 9df44c2d2cbae10aa7b27b2562d00d69c2caecb8 (patch) | |
tree | a27782b053e2603dedf350fdd7fd49e39b76c530 /core/script_language.h | |
parent | 16d402147b9057c9f7d43ef9b46eb8654e5483cc (diff) | |
download | redot-engine-9df44c2d2cbae10aa7b27b2562d00d69c2caecb8.tar.gz |
Use script instance binding for objects constructed from C#
Only possible if the object class is a "native type". If the object class is a user class (that derives a "native type") then a script is needed.
Since CSharpLanguage does cleanup of script instance bindings when finished, cases like #25621 will no longer cause problems.
Fixed ~Object() trying to free script instance bindings after the language has already been removed, which would result in a NULL dereference.
Diffstat (limited to 'core/script_language.h')
-rw-r--r-- | core/script_language.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/core/script_language.h b/core/script_language.h index b0f12dc291..2d35097692 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -54,6 +54,7 @@ class ScriptServer { static int _language_count; static bool scripting_enabled; static bool reload_scripts_on_save; + static bool languages_finished; struct GlobalScriptClass { StringName language; @@ -91,6 +92,8 @@ public: static void init_languages(); static void finish_languages(); + + static bool are_languages_finished() { return languages_finished; } }; class ScriptInstance; |