Queue* _queue_new(size_t dataSize)
{
Queue* queue = (Queue*) safe_malloc(sizeof (Queue));
+ queue->array = _vector_new(dataSize);
_queue_init(queue, dataSize);
return queue;
}
void queue_pop(Queue* queue)
{
- //remove first vector element and shift its internal array
- safe_free(queue->array->datas[0]);
- queue->array->datas++;
- //NOTE: we remove first element, so capacity decrease too
- queue->array->size--;
- queue->array->capacity--;
+ vector_pop_first(queue->array);
+
}
void queue_clear(Queue* queue)
void queue_destroy(Queue* queue)
{
- queue_clear(queue);
+ vector_destroy(queue->array);
safe_free(queue);
}