struct slist_entry *_gnix_queue_get_free(struct gnix_queue *queue) { struct slist_entry *ret; ret = _gnix_queue_dequeue_free(queue); if (!ret) ret = queue->alloc_item(queue->entry_size); return ret; }
void _gnix_queue_destroy(struct gnix_queue *queue) { struct slist_entry *temp; while ((temp = _gnix_queue_dequeue(queue))) queue->free_item(temp); while ((temp = _gnix_queue_dequeue_free(queue))) queue->free_item(temp); free(queue); }
Test(empty, null_read) { struct slist_entry *list_entry; list_entry = _gnix_queue_dequeue(queue); cr_expect(!list_entry, "non null read on empty queue."); list_entry = _gnix_queue_dequeue_free(queue); cr_expect(!list_entry, "non null read on free list of empty queue."); list_entry = _gnix_queue_peek(queue); cr_expect(!list_entry, "non null peek on empty queue."); }