Commit 6bb89ae3 authored by Ryan C. Gordon's avatar Ryan C. Gordon

Handle assertion failures when SDL_Init() isn't called.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404413
parent ca6027f7
......@@ -351,8 +351,19 @@ SDL_ReportAssertion(SDL_assert_data *data, const char *func, const char *file,
int line)
{
static int assertion_running = 0;
static SDL_SpinLock spinlock = 0;
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) {
return SDL_ASSERTION_IGNORE; /* oh well, I guess. */
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment