X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2FVector.c;h=cf45cb97bd6cb53c5e2adb3e512ddf3785ed12cc;hb=6860e3738006ac605540c4f7bd9b7a8bb75383ac;hp=2d00985445f6bae8b9a5f5f06d7961377313b587;hpb=a78687686f5b490d99fae21f9fa8aaa9a34f1812;p=cgds.git diff --git a/src/Vector.c b/src/Vector.c index 2d00985..cf45cb9 100644 --- a/src/Vector.c +++ b/src/Vector.c @@ -82,6 +82,23 @@ void vector_pop(Vector* vector) _vector_realloc(vector, vector->capacity >> 1); } +void vector_pop_first(Vector* vector) +{ + safe_free(vector->datas[0]); + + + //HACK: next 3 lines move vector head + void** nextDatas = vector->datas + 1; + safe_free(vector->datas); + vector->datas = nextDatas; +//but memory can then be reallocated : TODO + + + vector->size--; + if (vector->size <= (vector->capacity >> 1)) + _vector_realloc(vector, vector->capacity >> 1); +} + void* _vector_get(Vector* vector, UInt index) { return vector->datas[index];