forked from enlightenment/efl
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:
parent
50e74f02d4
commit
aefd608453
|
@ -363,7 +363,7 @@ eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// realloc back down - rounding up to the nearest step size
|
// 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);
|
tmp = realloc(array->data, sizeof(void *) * size);
|
||||||
if (!tmp) return EINA_FALSE;
|
if (!tmp) return EINA_FALSE;
|
||||||
array->total = size;
|
array->total = size;
|
||||||
|
|
Loading…
Reference in New Issue