summaryrefslogtreecommitdiff
path: root/src/lib/eina_inarray.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eina_inarray.c')
-rw-r--r--src/lib/eina_inarray.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/eina_inarray.c b/src/lib/eina_inarray.c
index 9a68f69..8e52688 100644
--- a/src/lib/eina_inarray.c
+++ b/src/lib/eina_inarray.c
@@ -523,6 +523,20 @@ eina_inarray_insert_at(Eina_Inarray *array, unsigned int position, const void *d
}
EAPI Eina_Bool
+eina_inarray_replace_at(Eina_Inarray *array, unsigned int position, const void *data)
+{
+ unsigned char *p;
+
+ EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, EINA_FALSE);
+
+ p = _eina_inarray_get(array, position);
+ memcpy(p, data, array->member_size);
+
+ return EINA_TRUE;
+}
+
+EAPI Eina_Bool
eina_inarray_remove_at(Eina_Inarray *array, unsigned int position)
{
EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE);