SDL: events: Fixed crash in SDL_SetEventEnabled.

From 9f6f4dfcb9d3fbfeec905825f99bed0990be99a6 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Mon, 15 Apr 2024 12:40:29 -0400
Subject: [PATCH] events: Fixed crash in SDL_SetEventEnabled.

This could happen if `enabled` was non-zero but not set to SDL_TRUE.

Static analysis tried to warn us!!

The added SDL_assert is meant to sanity check this, not pacify the analyzer;
this passes Clang's static analysis now, with or without the assert.

Fixes #9544.
---
 src/events/SDL_events.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c
index 01c7028d623ec..58bdfcdce1e58 100644
--- a/src/events/SDL_events.c
+++ b/src/events/SDL_events.c
@@ -1394,6 +1394,8 @@ void SDL_SetEventEnabled(Uint32 type, SDL_bool enabled)
     Uint8 hi = ((type >> 8) & 0xff);
     Uint8 lo = (type & 0xff);
 
+    enabled = !!enabled;  // make sure this is definitely either SDL_TRUE or SDL_FALSE.
+
     if (SDL_disabled_events[hi] &&
         (SDL_disabled_events[hi]->bits[lo / 32] & (1 << (lo & 31)))) {
         current_state = SDL_FALSE;
@@ -1403,14 +1405,8 @@ void SDL_SetEventEnabled(Uint32 type, SDL_bool enabled)
 
     if (enabled != current_state) {
         if (enabled) {
-#ifdef _MSC_VER /* Visual Studio analyzer can't tell that SDL_disabled_events[hi] isn't NULL if enabled is true */
-#pragma warning(push)
-#pragma warning(disable : 6011)
-#endif
+            SDL_assert(SDL_disabled_events[hi] != NULL);
             SDL_disabled_events[hi]->bits[lo / 32] &= ~(1 << (lo & 31));
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
 
             /* Gamepad events depend on joystick events */
             switch (type) {