diff options
author | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2017-07-19 17:22:47 -0300 |
---|---|---|
committer | Larry Jr <larry.olj@gmail.com> | 2017-07-27 17:31:47 -0300 |
commit | b07e62cdfd5ed1d0b71da9941d350f5f726de3ae (patch) | |
tree | a53e096518d908c35e9f41a5f58ed28f11d81a71 | |
parent | 496a17a20381f4428be6b8dd1b12664a3e73380d (diff) | |
download | efl-b07e62cdfd5ed1d0b71da9941d350f5f726de3ae.tar.gz |
eina: Add eina_inarray_setup for in-place construction of Eina_Inarray
-rw-r--r-- | src/lib/eina/eina_inarray.c | 8 | ||||
-rw-r--r-- | src/lib/eina/eina_inarray.h | 20 |
2 files changed, 24 insertions, 4 deletions
diff --git a/src/lib/eina/eina_inarray.c b/src/lib/eina/eina_inarray.c index a216f0291b..3263eab760 100644 --- a/src/lib/eina/eina_inarray.c +++ b/src/lib/eina/eina_inarray.c @@ -106,8 +106,8 @@ static int _eina_inarray_log_dom = -1; } \ while(0) -static void -_eina_inarray_setup(Eina_Inarray *array, unsigned int member_size, unsigned int step) +void +eina_inarray_setup(Eina_Inarray *array, unsigned int member_size, unsigned int step) { EINA_MAGIC_SET(array, EINA_MAGIC_INARRAY); array->version = EINA_ARRAY_VERSION; @@ -346,7 +346,7 @@ eina_inarray_new(unsigned int member_size, unsigned int step) ret = malloc(sizeof(*ret)); if (!ret) return NULL; - _eina_inarray_setup(ret, member_size, step); + eina_inarray_setup(ret, member_size, step); return ret; } @@ -380,7 +380,7 @@ eina_inarray_step_set(Eina_Inarray *array, return; } - _eina_inarray_setup(array, member_size, step); + eina_inarray_setup(array, member_size, step); } EAPI void diff --git a/src/lib/eina/eina_inarray.h b/src/lib/eina/eina_inarray.h index 7bba977a5b..a377b94abd 100644 --- a/src/lib/eina/eina_inarray.h +++ b/src/lib/eina/eina_inarray.h @@ -235,6 +235,26 @@ struct _Eina_Inarray }; /** + * @brief Initializes a inline array in-place. + * @details This initializes an array where members are inlined in a sequence. Each + * member has @a member_size bytes. + * + * @param[in] array Pointer to uninitialized array + * @param[in] member_size The size of each member in the array + * @param[in] step The step size by which to resize the array, do this using the following + * extra amount + * @return The new inline array table, otherwise @c NULL on failure + * + * @note If the @a step is @c 0, then a safe default is chosen. + * + * @see eina_inarray_free() + * + * @since 1.2 + */ +EAPI void eina_inarray_setup(Eina_Inarray* array, unsigned int member_size, + unsigned int step); + +/** * @brief Creates a new inline array. * @details This creates a new array where members are inlined in a sequence. Each * member has @a member_size bytes. |