Browse Source

Make sure the type in the SDL_Event aligns properly across the union

Sam Lantinga 1 year ago
parent
commit
790cd395f5
2 changed files with 8 additions and 1 deletions
  1. 5 1
      include/SDL3/SDL_events.h
  2. 3 0
      src/events/SDL_events.c

+ 5 - 1
include/SDL3/SDL_events.h

@@ -227,7 +227,11 @@ typedef enum
     /**
      *  This last event is only for bounding internal arrays
      */
-    SDL_EVENT_LAST    = 0xFFFF
+    SDL_EVENT_LAST    = 0xFFFF,
+
+    /* This just makes sure the enum is the size of Uint32 */
+    SDL_EVENT_ENUM_PADDING = 0x7FFFFFFF
+
 } SDL_EventType;
 
 /**

+ 3 - 0
src/events/SDL_events.c

@@ -48,6 +48,9 @@
 /* Determines how often we wake to call SDL_PumpEvents() in SDL_WaitEventTimeout_Device() */
 #define PERIODIC_POLL_INTERVAL_NS (3 * SDL_NS_PER_SECOND)
 
+/* Make sure the type in the SDL_Event aligns properly across the union */
+SDL_COMPILE_TIME_ASSERT(SDL_Event_type, sizeof(Uint32) == sizeof(SDL_EventType));
+
 typedef struct SDL_EventWatcher
 {
     SDL_EventFilter callback;