diff options
author | Marcelo Fernandez <marcelofg55@gmail.com> | 2017-09-18 16:29:23 -0300 |
---|---|---|
committer | Marcelo Fernandez <marcelofg55@gmail.com> | 2017-09-18 16:29:23 -0300 |
commit | ff1e0a3e2cb6619644215432604293eb7ba53699 (patch) | |
tree | 19d15b364137f8bd31cd74bf02318916502d2a68 /platform/windows/godot_win.cpp | |
parent | 3d06957f12ba5c04702f3db980af9c07142e7886 (diff) | |
download | redot-engine-ff1e0a3e2cb6619644215432604293eb7ba53699.tar.gz |
Prevent running the crash_handler when a debugger is present on windows
Diffstat (limited to 'platform/windows/godot_win.cpp')
-rw-r--r-- | platform/windows/godot_win.cpp | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/platform/windows/godot_win.cpp b/platform/windows/godot_win.cpp index 4450cb3670..cff2cbad42 100644 --- a/platform/windows/godot_win.cpp +++ b/platform/windows/godot_win.cpp @@ -156,32 +156,36 @@ int widechar_main(int argc, wchar_t **argv) { return os.get_exit_code(); }; -int main(int _argc, char **_argv) { -// _argc and _argv are ignored -// we are going to use the WideChar version of them instead +int _main() { + LPWSTR *wc_argv; + int argc; + int result; -#ifdef CRASH_HANDLER_EXCEPTION - __try { -#endif - LPWSTR *wc_argv; - int argc; - int result; + wc_argv = CommandLineToArgvW(GetCommandLineW(), &argc); + + if (NULL == wc_argv) { + wprintf(L"CommandLineToArgvW failed\n"); + return 0; + } - wc_argv = CommandLineToArgvW(GetCommandLineW(), &argc); + result = widechar_main(argc, wc_argv); - if (NULL == wc_argv) { - wprintf(L"CommandLineToArgvW failed\n"); - return 0; - } + LocalFree(wc_argv); + return result; +} - result = widechar_main(argc, wc_argv); +int main(int _argc, char **_argv) { +// _argc and _argv are ignored +// we are going to use the WideChar version of them instead - LocalFree(wc_argv); - return result; #ifdef CRASH_HANDLER_EXCEPTION + __try { + return _main(); } __except (CrashHandlerException(GetExceptionInformation())) { return 1; } +#else + return _main(); #endif } |