# HG changeset patch # User Ryan C. Gordon # Date 1263375857 0 # Node ID 6a0b3048f271772010b5d4bc91684388c6ede954 # Parent 22b6a0c7ea6ebefc2696e6d96997f26c49078394 Handle assertion failures when SDL_Init() isn't called. diff -r 22b6a0c7ea6e -r 6a0b3048f271 src/SDL_assert.c --- 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. */ }