diff --git a/src/lib/eina/eina_array.c b/src/lib/eina/eina_array.c index ab853a01ea..dddcf732bb 100644 --- a/src/lib/eina/eina_array.c +++ b/src/lib/eina/eina_array.c @@ -363,7 +363,7 @@ eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data, else { // realloc back down - rounding up to the nearest step size - size = (array->count + array->step - 1) % array->step; + size = ((array->count / array->step) + (array->count % array->step ? 1 : 0)) * array->step; tmp = realloc(array->data, sizeof(void *) * size); if (!tmp) return EINA_FALSE; array->total = size;