summaryrefslogtreecommitdiffstats
path: root/core/script_language.h
diff options
context:
space:
mode:
authorIgnacio Etcheverry <ignalfonsore@gmail.com>2019-02-04 20:39:02 +0100
committerIgnacio Etcheverry <ignalfonsore@gmail.com>2019-02-09 00:32:18 +0100
commit9df44c2d2cbae10aa7b27b2562d00d69c2caecb8 (patch)
treea27782b053e2603dedf350fdd7fd49e39b76c530 /core/script_language.h
parent16d402147b9057c9f7d43ef9b46eb8654e5483cc (diff)
downloadredot-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.h3
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;