forked from enlightenment/efl
parent
f193096aa8
commit
cf5bc3129d
|
@ -32,14 +32,17 @@ struct _Eina_Array /** An array of data */
|
|||
unsigned int step; /**< How much must we grow the vector When it is full */
|
||||
};
|
||||
|
||||
EAPI Eina_Array *eina_array_new (unsigned int step);
|
||||
EAPI void eina_array_setup (Eina_Array *array, unsigned int step);
|
||||
EAPI void eina_array_free (Eina_Array *array);
|
||||
EAPI void eina_array_append (Eina_Array *array, void *data);
|
||||
EAPI void *eina_array_get (Eina_Array *array, unsigned int index);
|
||||
EAPI void eina_array_clean (Eina_Array *array);
|
||||
EAPI void eina_array_flush (Eina_Array *array);
|
||||
EAPI void eina_array_remove (Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata), void *gdata);
|
||||
EAPI int eina_array_init (void);
|
||||
EAPI int eina_array_shutdown (void);
|
||||
|
||||
EAPI Eina_Array *eina_array_new (unsigned int step);
|
||||
EAPI void eina_array_setup (Eina_Array *array, unsigned int step);
|
||||
EAPI void eina_array_free (Eina_Array *array);
|
||||
EAPI void eina_array_append (Eina_Array *array, void *data);
|
||||
EAPI void *eina_array_get (Eina_Array *array, unsigned int index);
|
||||
EAPI void eina_array_clean (Eina_Array *array);
|
||||
EAPI void eina_array_flush (Eina_Array *array);
|
||||
EAPI void eina_array_remove (Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata), void *gdata);
|
||||
|
||||
#define EINA_ARRAY_ITER_NEXT(array, index, item) for ((index) = 0, (item) = ((array) && (array)->count > 0) ? _eina_array_get((array), (index)) : NULL; (index) < (array)->count; ++(index), (item) = _eina_array_get((array), (index)))
|
||||
|
||||
|
|
|
@ -27,9 +27,22 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "eina_error.h"
|
||||
#include "eina_array.h"
|
||||
#include "eina_inline_array.x"
|
||||
|
||||
EAPI int
|
||||
eina_array_init(void)
|
||||
{
|
||||
return eina_error_init();
|
||||
}
|
||||
|
||||
EAPI int
|
||||
eina_array_shutdown(void)
|
||||
{
|
||||
return eina_error_shutdown();
|
||||
}
|
||||
|
||||
EAPI void
|
||||
eina_array_append(Eina_Array *array, void *data)
|
||||
{
|
||||
|
@ -69,8 +82,12 @@ eina_array_new(unsigned int step)
|
|||
{
|
||||
Eina_Array *array;
|
||||
|
||||
eina_error_set(0);
|
||||
array = malloc(sizeof (Eina_Array));
|
||||
if (!array) return NULL;
|
||||
if (!array) {
|
||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
array->data = NULL;
|
||||
array->total = 0;
|
||||
|
@ -132,8 +149,12 @@ eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata),
|
|||
return ;
|
||||
}
|
||||
|
||||
eina_error_set(0);
|
||||
tmp = malloc(sizeof (void*) * array->total);
|
||||
if (!tmp) return ;
|
||||
if (!tmp) {
|
||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||
return ;
|
||||
}
|
||||
|
||||
memcpy(tmp, array->data, limit * sizeof(void*));
|
||||
total = limit;
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "eina_inlist.h"
|
||||
#include "eina_error.h"
|
||||
#include "eina_private.h"
|
||||
|
||||
/*============================================================================*
|
||||
* Local *
|
||||
*============================================================================*/
|
||||
|
@ -51,7 +52,6 @@ struct _Eina_Hash_El
|
|||
};
|
||||
|
||||
static int _eina_hash_init_count = 0;
|
||||
static int EINA_HASH_ERROR_OUT_OF_MEMORY = 0;
|
||||
|
||||
static inline Eina_Hash_El *
|
||||
_eina_hash_find_by_hash(const Eina_Hash *hash, const char *key, int key_length, int key_hash)
|
||||
|
@ -126,10 +126,7 @@ eina_hash_init(void)
|
|||
_eina_hash_init_count++;
|
||||
|
||||
if (_eina_hash_init_count == 1)
|
||||
{
|
||||
eina_error_init();
|
||||
EINA_HASH_ERROR_OUT_OF_MEMORY = eina_error_register("Eina_Hash out of memory");
|
||||
}
|
||||
eina_error_init();
|
||||
|
||||
return _eina_hash_init_count;
|
||||
}
|
||||
|
@ -168,7 +165,7 @@ eina_hash_new(Eina_Key_Length key_length_cb,
|
|||
return new;
|
||||
|
||||
on_error:
|
||||
eina_error_set(EINA_HASH_ERROR_OUT_OF_MEMORY);
|
||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -242,7 +239,7 @@ eina_hash_add_by_hash(Eina_Hash *hash,
|
|||
return EINA_TRUE;
|
||||
|
||||
on_error:
|
||||
eina_error_set(EINA_HASH_ERROR_OUT_OF_MEMORY);
|
||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
|
@ -300,7 +297,7 @@ eina_hash_direct_add_by_hash(Eina_Hash *hash,
|
|||
return EINA_TRUE;
|
||||
|
||||
on_error:
|
||||
eina_error_set(EINA_HASH_ERROR_OUT_OF_MEMORY);
|
||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ START_TEST(eina_array_simple)
|
|||
char *tmp;
|
||||
unsigned int i;
|
||||
|
||||
eina_array_init();
|
||||
|
||||
ea = eina_array_new(11);
|
||||
fail_if(!ea);
|
||||
|
||||
|
@ -53,6 +55,8 @@ START_TEST(eina_array_simple)
|
|||
eina_array_clean(ea);
|
||||
eina_array_flush(ea);
|
||||
eina_array_free(ea);
|
||||
|
||||
eina_array_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
@ -62,6 +66,8 @@ START_TEST(eina_array_static)
|
|||
char *tmp;
|
||||
unsigned int i;
|
||||
|
||||
eina_array_init();
|
||||
|
||||
eina_array_setup(&sea, 10);
|
||||
|
||||
for (i = 0; i < 200; ++i)
|
||||
|
@ -86,6 +92,8 @@ START_TEST(eina_array_static)
|
|||
|
||||
eina_array_clean(&sea);
|
||||
eina_array_flush(&sea);
|
||||
|
||||
eina_array_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
@ -107,6 +115,8 @@ START_TEST(eina_array_remove_stuff)
|
|||
int *tmp;
|
||||
unsigned int i;
|
||||
|
||||
eina_array_init();
|
||||
|
||||
ea = eina_array_new(64);
|
||||
fail_if(!ea);
|
||||
|
||||
|
@ -153,6 +163,8 @@ START_TEST(eina_array_remove_stuff)
|
|||
fail_if(eina_array_count(ea) != 0);
|
||||
|
||||
eina_array_free(ea);
|
||||
|
||||
eina_array_shutdown();
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
|
Loading…
Reference in New Issue