From ac54d57aa524ce2a2d392c7b794cdab31ca3e81f Mon Sep 17 00:00:00 2001
From: Cameron Gutman <[EMAIL REDACTED]>
Date: Tue, 26 Oct 2021 20:02:38 -0500
Subject: [PATCH] event: Check subsystem initialization before events or
devices
SDL_WasInit() is cheaper SDL_NumJoysticks()/SDL_NumSensors().
---
src/events/SDL_events.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c
index 2e79852b38..51d3bd64fd 100644
--- a/src/events/SDL_events.c
+++ b/src/events/SDL_events.c
@@ -881,19 +881,20 @@ SDL_WaitEventTimeout_Device(_THIS, SDL_Window *wakeup_window, SDL_Event * event,
return 0;
}
-static int
+static SDL_bool
SDL_events_need_polling() {
SDL_bool need_polling = SDL_FALSE;
#if !SDL_JOYSTICK_DISABLED
- need_polling = \
- (!SDL_disabled_events[SDL_JOYAXISMOTION >> 8] || SDL_JoystickEventState(SDL_QUERY)) \
- && (SDL_NumJoysticks() > 0);
+ need_polling =
+ SDL_WasInit(SDL_INIT_JOYSTICK) &&
+ (!SDL_disabled_events[SDL_JOYAXISMOTION >> 8] || SDL_JoystickEventState(SDL_QUERY)) &&
+ (SDL_NumJoysticks() > 0);
#endif
#if !SDL_SENSOR_DISABLED
- need_polling = need_polling || (!SDL_disabled_events[SDL_SENSORUPDATE >> 8] && \
- (SDL_NumSensors() > 0));
+ need_polling = need_polling ||
+ (SDL_WasInit(SDL_INIT_SENSOR) && !SDL_disabled_events[SDL_SENSORUPDATE >> 8] && (SDL_NumSensors() > 0));
#endif
return need_polling;