improve test/makemain.sh, move queu_pop code to vector class
[cgds.git] / src / Queue.c
index 7921f29..b85cf39 100644 (file)
@@ -13,6 +13,7 @@ void _queue_init(Queue* queue, size_t dataSize)
 Queue* _queue_new(size_t dataSize)
 {
        Queue* queue = (Queue*) safe_malloc(sizeof (Queue));
+       queue->array = _vector_new(dataSize);
        _queue_init(queue, dataSize);
        return queue;
 }
@@ -43,17 +44,13 @@ void _queue_push(Queue* queue, void* data)
 
 void* _queue_peek(Queue* queue)
 {
-       return vector_get(queue->array, 0);
+       return _vector_get(queue->array, 0);
 }
 
 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)
@@ -63,6 +60,6 @@ void queue_clear(Queue* queue)
 
 void queue_destroy(Queue* queue)
 {
-       queue_clear(queue);
+       vector_destroy(queue->array);
        safe_free(queue);
 }