mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-16 17:58:27 +00:00
Revert "Removing a timer that isn't running is a success."
This reverts commit 795499a529
.
This breaks compatibility with SDL2 and there isn't a compelling reason to make this change.
This commit is contained in:
parent
d223264f17
commit
d68d32e12c
2 changed files with 9 additions and 3 deletions
|
@ -353,6 +353,7 @@ int SDL_RemoveTimer(SDL_TimerID id)
|
||||||
{
|
{
|
||||||
SDL_TimerData *data = &SDL_timer_data;
|
SDL_TimerData *data = &SDL_timer_data;
|
||||||
SDL_TimerMap *prev, *entry;
|
SDL_TimerMap *prev, *entry;
|
||||||
|
SDL_bool canceled = SDL_FALSE;
|
||||||
|
|
||||||
if (!id) {
|
if (!id) {
|
||||||
return SDL_InvalidParamError("id");
|
return SDL_InvalidParamError("id");
|
||||||
|
@ -376,10 +377,15 @@ int SDL_RemoveTimer(SDL_TimerID id)
|
||||||
if (entry) {
|
if (entry) {
|
||||||
if (!SDL_AtomicGet(&entry->timer->canceled)) {
|
if (!SDL_AtomicGet(&entry->timer->canceled)) {
|
||||||
SDL_AtomicSet(&entry->timer->canceled, 1);
|
SDL_AtomicSet(&entry->timer->canceled, 1);
|
||||||
|
canceled = SDL_TRUE;
|
||||||
}
|
}
|
||||||
SDL_free(entry);
|
SDL_free(entry);
|
||||||
}
|
}
|
||||||
return 0;
|
if (canceled) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return SDL_SetError("Timer not found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -142,7 +142,7 @@ static int timer_addRemoveTimer(void *arg)
|
||||||
/* Try to remove timer again (should be a NOOP) */
|
/* Try to remove timer again (should be a NOOP) */
|
||||||
result = SDL_RemoveTimer(id);
|
result = SDL_RemoveTimer(id);
|
||||||
SDLTest_AssertPass("Call to SDL_RemoveTimer()");
|
SDLTest_AssertPass("Call to SDL_RemoveTimer()");
|
||||||
SDLTest_AssertCheck(result == 0, "Check result value, expected: 0, got: %i", result);
|
SDLTest_AssertCheck(result < 0, "Check result value, expected: <0, got: %i", result);
|
||||||
|
|
||||||
/* Reset state */
|
/* Reset state */
|
||||||
param = SDLTest_RandomIntegerInRange(-1024, 1024);
|
param = SDLTest_RandomIntegerInRange(-1024, 1024);
|
||||||
|
@ -162,7 +162,7 @@ static int timer_addRemoveTimer(void *arg)
|
||||||
/* Remove timer again and check that callback was called */
|
/* Remove timer again and check that callback was called */
|
||||||
result = SDL_RemoveTimer(id);
|
result = SDL_RemoveTimer(id);
|
||||||
SDLTest_AssertPass("Call to SDL_RemoveTimer()");
|
SDLTest_AssertPass("Call to SDL_RemoveTimer()");
|
||||||
SDLTest_AssertCheck(result == 0, "Check result value, expected: 0, got: %i", result);
|
SDLTest_AssertCheck(result < 0, "Check result value, expected: <0, got: %i", result);
|
||||||
SDLTest_AssertCheck(g_timerCallbackCalled == 1, "Check callback WAS called, expected: 1, got: %i", g_timerCallbackCalled);
|
SDLTest_AssertCheck(g_timerCallbackCalled == 1, "Check callback WAS called, expected: 1, got: %i", g_timerCallbackCalled);
|
||||||
|
|
||||||
return TEST_COMPLETED;
|
return TEST_COMPLETED;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue