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