Windows: Don't call abort, use RaiseException directly

This commit is contained in:
Jonathan G Rennison
2023-06-11 16:46:12 +01:00
parent cb6f6f94e6
commit cca7c0ef0a
5 changed files with 23 additions and 2 deletions

View File

@@ -123,6 +123,7 @@ extern Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMP
extern void OSOpenBrowser(const char *url);
extern void RebuildTownCaches(bool cargo_update_required, bool old_map_position);
extern void ShowOSErrorBox(const char *buf, bool system);
extern void NORETURN DoOSAbort();
extern std::string _config_file;
bool _save_config = false;
@@ -180,7 +181,7 @@ void CDECL error(const char *s, ...)
/* Set the error message for the crash log and then invoke it. */
CrashLog::SetErrorMessage(buf);
abort();
DoOSAbort();
}
void CDECL assert_msg_error(int line, const char *file, const char *expr, const char *extra, const char *str, ...)
@@ -203,7 +204,7 @@ void CDECL assert_msg_error(int line, const char *file, const char *expr, const
/* Set the error message for the crash log and then invoke it. */
CrashLog::SetErrorMessage(buf);
abort();
DoOSAbort();
}
const char *assert_tile_info(uint32 tile) {

View File

@@ -158,6 +158,11 @@ void ShowOSErrorBox(const char *buf, bool system)
}
}
void DoOSAbort()
{
abort();
}
void OSOpenBrowser(const char *url)
{
[ [ NSWorkspace sharedWorkspace ] openURL:[ NSURL URLWithString:[ NSString stringWithUTF8String:url ] ] ];

View File

@@ -170,6 +170,11 @@ void ShowOSErrorBox(const char *buf, bool system)
WinTerminate(hab);
}
void DoOSAbort()
{
abort();
}
int CDECL main(int argc, char *argv[])
{
SetRandomSeed(time(nullptr));

View File

@@ -233,6 +233,11 @@ void ShowOSErrorBox(const char *buf, bool system)
fprintf(stderr, "Error: %s\n", buf);
}
}
void NORETURN DoOSAbort()
{
abort();
}
#endif
#ifdef WITH_COCOA

View File

@@ -86,6 +86,11 @@ void ShowOSErrorBox(const char *buf, bool system)
MessageBox(GetActiveWindow(), OTTD2FS(buf).c_str(), L"Error!", MB_ICONSTOP | MB_TASKMODAL);
}
void NORETURN DoOSAbort()
{
RaiseException(0xE1212012, 0, 0, nullptr);
}
void OSOpenBrowser(const char *url)
{
ShellExecute(GetActiveWindow(), L"open", OTTD2FS(url).c_str(), nullptr, nullptr, SW_SHOWNORMAL);