Fix bug with es_remove_event_listener

This commit is contained in:
Abdelrahman Said 2025-01-01 20:26:20 +00:00
parent ca016c34f0
commit 01592a57a4

View File

@ -11,7 +11,7 @@
#define IS_INVALID_SYSTEM(ES) (ES.id == 0)
#define IS_INVALID_EVENT(EV) (EV.id == 0)
#define IS_INVALID_LISTENER(LS) (LS.id == 0)
#define IS_INVALID_LISTENER(LS) (LS.id == 0 || IS_INVALID_EVENT(LS.event))
typedef struct es_internal ESInternal;
struct es_internal {
@ -219,7 +219,11 @@ void es_remove_event_listener(EventSystem event_system, EventListener listener)
return;
}
ESInternal *es = get_event_system_internal(event_system);
ESInternal *es = get_event_system_internal(event_system);
if (listener.event.id > es->event_count) {
return;
}
EventInternal *ev = get_event(es, listener.event);
if (listener.id > ev->count) {