forked from enlightenment/efl
efl: add a way to allocate without memcpy data in an Eina_Inarray.
SVN revision: 81913
This commit is contained in:
parent
f8ea554926
commit
375be85b27
|
@ -413,6 +413,22 @@ eina_inarray_push(Eina_Inarray *array, const void *data)
|
|||
return array->len - 1;
|
||||
}
|
||||
|
||||
EAPI void *
|
||||
eina_inarray_add(Eina_Inarray *array)
|
||||
{
|
||||
void *p;
|
||||
|
||||
EINA_MAGIC_CHECK_INARRAY(array, NULL);
|
||||
|
||||
if (!_eina_inarray_resize(array, array->len + 1))
|
||||
return NULL;
|
||||
|
||||
p = _eina_inarray_get(array, array->len);
|
||||
array->len++;
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
eina_inarray_insert(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare)
|
||||
{
|
||||
|
@ -507,7 +523,7 @@ eina_inarray_pop(Eina_Inarray *array)
|
|||
if (!_eina_inarray_resize(array, array->len - 1))
|
||||
return NULL;
|
||||
array->len--;
|
||||
return _eina_inarray_get(array, array->len + 1);
|
||||
return _eina_inarray_get(array, array->len);
|
||||
}
|
||||
|
||||
EAPI void *
|
||||
|
|
|
@ -291,6 +291,17 @@ EAPI void eina_inarray_flush(Eina_Inarray *array) EINA_ARG_NONNULL(1);
|
|||
EAPI int eina_inarray_push(Eina_Inarray *array,
|
||||
const void *data) EINA_ARG_NONNULL(1, 2);
|
||||
|
||||
/**
|
||||
* @brief Allocate a new item at the end of the array.
|
||||
* @param array array object
|
||||
*
|
||||
* The returned pointer is only valid until you use any other eina_inarray
|
||||
* function.
|
||||
*
|
||||
* @since 1.8
|
||||
*/
|
||||
EAPI void *eina_inarray_add(Eina_Inarray *array);
|
||||
|
||||
/**
|
||||
* @brief Copy the data to array at position found by comparison function
|
||||
* @param array array object
|
||||
|
|
Loading…
Reference in New Issue