Merge pull request #46307 from RandomShaper/fix_crash_mono_glue

Make glue generation shutdown more graceful
This commit is contained in:
Rémi Verschelde 2021-02-22 21:39:01 +01:00 committed by GitHub
commit 88ee248db0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 3 deletions

View file

@ -2576,8 +2576,10 @@ void Main::force_redraw() {
* so that the engine closes cleanly without leaking memory or crashing. * so that the engine closes cleanly without leaking memory or crashing.
* The order matters as some of those steps are linked with each other. * The order matters as some of those steps are linked with each other.
*/ */
void Main::cleanup() { void Main::cleanup(bool p_force) {
ERR_FAIL_COND(!_start_success); if (!p_force) {
ERR_FAIL_COND(!_start_success);
}
EngineDebugger::deinitialize(); EngineDebugger::deinitialize();

View file

@ -59,7 +59,7 @@ public:
static bool is_iterating(); static bool is_iterating();
static void cleanup(); static void cleanup(bool p_force = false);
}; };
// Test main override is for the testing behaviour. // Test main override is for the testing behaviour.

View file

@ -39,6 +39,7 @@
#include "core/os/file_access.h" #include "core/os/file_access.h"
#include "core/os/os.h" #include "core/os/os.h"
#include "core/string/ucaps.h" #include "core/string/ucaps.h"
#include "main/main.h"
#include "../glue/cs_glue_version.gen.h" #include "../glue/cs_glue_version.gen.h"
#include "../godotsharp_defs.h" #include "../godotsharp_defs.h"
@ -3649,6 +3650,7 @@ void BindingsGenerator::handle_cmdline_args(const List<String> &p_cmdline_args)
if (!bindings_generator.initialized) { if (!bindings_generator.initialized) {
ERR_PRINT("Failed to initialize the bindings generator"); ERR_PRINT("Failed to initialize the bindings generator");
Main::cleanup(true);
::exit(0); ::exit(0);
} }
@ -3675,6 +3677,7 @@ void BindingsGenerator::handle_cmdline_args(const List<String> &p_cmdline_args)
} }
// Exit once done // Exit once done
Main::cleanup(true);
::exit(0); ::exit(0);
} }
} }