eina: fix rounding logic to avoid making the array to short.

I have no idea how the previous formula was supposed to work at all, but
this one is the same as our alignof code to make sure we do allocate to
the really nearest size and don't do over allocation. Additionnaly it works.
This commit is contained in:
Cedric Bail 2013-11-29 15:30:32 +09:00
parent 50e74f02d4
commit aefd608453
1 changed files with 1 additions and 1 deletions

View File

@ -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;