Fix bug with es_remove_event_listener
This commit is contained in:
		| @@ -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 { | ||||
| @@ -220,6 +220,10 @@ void es_remove_event_listener(EventSystem event_system, EventListener listener) | ||||
|   } | ||||
|  | ||||
|   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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user