From 9df44c2d2cbae10aa7b27b2562d00d69c2caecb8 Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Mon, 4 Feb 2019 20:39:02 +0100 Subject: 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. --- core/script_language.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'core/script_language.h') 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; -- cgit v1.2.3