fixed vector resizing logic

master
Dvir Volk 9 years ago
parent 16326d6e29
commit 66b300d428

@ -45,9 +45,13 @@ int Vector_Resize(Vector *v, int newcap) {
v->cap = newcap; v->cap = newcap;
v->data = realloc(v->data, v->cap*v->elemSize); v->data = realloc(v->data, v->cap*v->elemSize);
int offset = oldcap*v->elemSize;
// If we grew:
// put all zeros at the newly realloc'd part of the vector // put all zeros at the newly realloc'd part of the vector
memset(v->data + offset, 0, v->cap*v->elemSize - offset); if (newcap > oldcap) {
int offset = oldcap*v->elemSize;
memset(v->data + offset, 0, v->cap*v->elemSize - offset);
}
return v->cap; return v->cap;
} }

Loading…
Cancel
Save