diff --git a/base/sources/iron_sys.c b/base/sources/iron_sys.c index bdb1b258..8c1c183e 100644 --- a/base/sources/iron_sys.c +++ b/base/sources/iron_sys.c @@ -397,7 +397,9 @@ f32 sys_real_delta(void) { static void _sys_run_callbacks(any_array_t *cbs, i32 len) { for (i32 i = 0; i < len; ++i) { callback_t *cb = cbs->buffer[i]; - cb->f(cb->data); + if (cb != NULL) { // Callback may have been removed + cb->f(cb->data); + } } } @@ -459,10 +461,6 @@ void sys_remove_update(void (*f)(void *data)) { _sys_remove_callback(_sys_on_updates, f); } -void sys_remove_end_frame(void (*f)(void *data)) { - _sys_remove_callback(_sys_on_end_frames, f); -} - void video_unload(video_t *self) {} char *sys_buffer_to_string(buffer_t *b) { diff --git a/base/sources/iron_sys.h b/base/sources/iron_sys.h index 0c63ab7e..cf92f635 100644 --- a/base/sources/iron_sys.h +++ b/base/sources/iron_sys.h @@ -65,7 +65,6 @@ void sys_notify_on_update(void (*f)(void *data), void *data); void sys_notify_on_next_frame(void (*f)(void *data), void *data); void sys_notify_on_end_frame(void (*f)(void *data), void *data); void sys_remove_update(void (*f)(void *data)); -void sys_remove_end_frame(void (*f)(void *data)); void sys_render(void); void sys_foreground(void);