Handle assertion failures when SDL_Init() isn't called.
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404413
This commit is contained in:
parent
ca6027f7e7
commit
6bb89ae342
1 changed files with 11 additions and 0 deletions
|
@ -351,8 +351,19 @@ SDL_ReportAssertion(SDL_assert_data *data, const char *func, const char *file,
|
||||||
int line)
|
int line)
|
||||||
{
|
{
|
||||||
static int assertion_running = 0;
|
static int assertion_running = 0;
|
||||||
|
static SDL_SpinLock spinlock = 0;
|
||||||
SDL_assert_state state = SDL_ASSERTION_IGNORE;
|
SDL_assert_state state = SDL_ASSERTION_IGNORE;
|
||||||
|
|
||||||
|
SDL_AtomicLock(&spinlock);
|
||||||
|
if (assertion_mutex == NULL) { /* never called SDL_Init()? */
|
||||||
|
assertion_mutex = SDL_CreateMutex();
|
||||||
|
if (assertion_mutex == NULL) {
|
||||||
|
SDL_AtomicUnlock(&spinlock);
|
||||||
|
return SDL_ASSERTION_IGNORE; /* oh well, I guess. */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SDL_AtomicUnlock(&spinlock);
|
||||||
|
|
||||||
if (SDL_LockMutex(assertion_mutex) < 0) {
|
if (SDL_LockMutex(assertion_mutex) < 0) {
|
||||||
return SDL_ASSERTION_IGNORE; /* oh well, I guess. */
|
return SDL_ASSERTION_IGNORE; /* oh well, I guess. */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue