Use SDL_abort when encountering a internal fatal SDL_assertion error

This commit is contained in:
Anonymous Maarten
2025-09-17 19:32:27 +02:00
committed by Anonymous Maarten
parent a7739ceccb
commit 5dfa2cb88a

View File

@@ -120,15 +120,6 @@ static void SDL_GenerateAssertionReport(void)
}
}
/* This is not declared in any header, although it is shared between some
parts of SDL, because we don't want anything calling it without an
extremely good reason. */
#ifdef __WATCOMC__
extern void SDL_ExitProcess(int exitcode);
#pragma aux SDL_ExitProcess aborts;
#endif
extern SDL_NORETURN void SDL_ExitProcess(int exitcode);
#ifdef __WATCOMC__
static void SDL_AbortAssertion(void);
#pragma aux SDL_AbortAssertion aborts;
@@ -136,7 +127,7 @@ static void SDL_AbortAssertion(void);
static SDL_NORETURN void SDL_AbortAssertion(void)
{
SDL_Quit();
SDL_ExitProcess(42);
SDL_abort();
}
static SDL_AssertState SDLCALL SDL_PromptAssertion(const SDL_AssertData *data, void *userdata)
@@ -361,7 +352,7 @@ SDL_AssertState SDL_ReportAssertion(SDL_AssertData *data, const char *func, cons
if (assertion_running == 2) {
SDL_AbortAssertion();
} else if (assertion_running == 3) { // Abort asserted!
SDL_ExitProcess(42);
SDL_abort();
} else {
while (1) { // do nothing but spin; what else can you do?!
}