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_SYSTEM(ES) (ES.id == 0) | ||||||
| #define IS_INVALID_EVENT(EV) (EV.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; | typedef struct es_internal ESInternal; | ||||||
| struct es_internal { | struct es_internal { | ||||||
| @@ -219,7 +219,11 @@ void es_remove_event_listener(EventSystem event_system, EventListener listener) | |||||||
|     return; |     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); |   EventInternal *ev = get_event(es, listener.event); | ||||||
|  |  | ||||||
|   if (listener.id > ev->count) { |   if (listener.id > ev->count) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user