Mercurial > sdl-ios-xcode
diff src/SDL_assert.c @ 3662:6a0b3048f271
Handle assertion failures when SDL_Init() isn't called.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Wed, 13 Jan 2010 09:44:17 +0000 |
parents | 22b6a0c7ea6e |
children | 8bdc37b1a52a |
line wrap: on
line diff
--- a/src/SDL_assert.c Wed Jan 13 09:13:37 2010 +0000 +++ b/src/SDL_assert.c Wed Jan 13 09:44:17 2010 +0000 @@ -351,8 +351,19 @@ 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. */ }