X-Git-Url: https://git.auder.net/?p=cgds.git;a=blobdiff_plain;f=src%2FVector.c;h=cf45cb97bd6cb53c5e2adb3e512ddf3785ed12cc;hp=a303d54805a4e63d7d5e7dd31d28c051522e99b1;hb=6860e3738006ac605540c4f7bd9b7a8bb75383ac;hpb=4029c99123c240d6e26505940cb5d2be10f9ef2a diff --git a/src/Vector.c b/src/Vector.c index a303d54..cf45cb9 100644 --- a/src/Vector.c +++ b/src/Vector.c @@ -85,9 +85,17 @@ void vector_pop(Vector* vector) void vector_pop_first(Vector* vector) { safe_free(vector->datas[0]); - vector->datas++; + + + //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) <= (vector->capacity >> 1)) + if (vector->size <= (vector->capacity >> 1)) _vector_realloc(vector, vector->capacity >> 1); }