diff --git a/ext/io/event/selector/array.h b/ext/io/event/selector/array.h index 5f44b12..e96197b 100644 --- a/ext/io/event/selector/array.h +++ b/ext/io/event/selector/array.h @@ -29,6 +29,8 @@ inline static void IO_Event_Array_allocate(struct IO_Event_Array *array, size_t { if (count) { array->base = (void**)calloc(count, sizeof(void*)); + assert(array->base); + array->count = count; } else { array->base = NULL; @@ -51,6 +53,7 @@ inline static void IO_Event_Array_free(struct IO_Event_Array *array) void *element = array->base[i]; if (element) { array->element_free(element); + free(element); } } @@ -107,6 +110,7 @@ inline static void* IO_Event_Array_lookup(struct IO_Event_Array *array, size_t i // Allocate the element if it doesn't exist: if (*element == NULL) { *element = malloc(array->element_size); + assert(*element); if (array->element_initialize) { array->element_initialize(*element); diff --git a/ext/io/event/selector/selector.c b/ext/io/event/selector/selector.c index 91ff135..3eabfab 100644 --- a/ext/io/event/selector/selector.c +++ b/ext/io/event/selector/selector.c @@ -276,6 +276,7 @@ VALUE IO_Event_Selector_raise(struct IO_Event_Selector *backend, int argc, VALUE void IO_Event_Selector_queue_push(struct IO_Event_Selector *backend, VALUE fiber) { struct IO_Event_Selector_Queue *waiting = malloc(sizeof(struct IO_Event_Selector_Queue)); + assert(waiting); waiting->head = NULL; waiting->tail = NULL;