SVN revision: 35446
This commit is contained in:
Cedric BAIL 2008-08-12 16:01:10 +00:00
parent d299b79375
commit e360e1b2b9
3 changed files with 73 additions and 66 deletions

View File

@ -32,6 +32,77 @@
#include "eina_inline_array.x"
#include "eina_private.h"
/*============================================================================*
* Local *
*============================================================================*/
typedef struct _Eina_Iterator_Array Eina_Iterator_Array;
struct _Eina_Iterator_Array
{
Eina_Iterator iterator;
const Eina_Array *array;
unsigned int index;
};
typedef struct _Eina_Accessor_Array Eina_Accessor_Array;
struct _Eina_Accessor_Array
{
Eina_Accessor accessor;
const Eina_Array *array;
};
static Eina_Bool
eina_array_iterator_next(Eina_Iterator_Array *it, void **data)
{
if (!(it->index < eina_array_count(it->array)))
return EINA_FALSE;
if (data)
*data = eina_array_get(it->array, it->index);
it->index++;
return EINA_TRUE;
}
static Eina_Array *
eina_array_iterator_get_container(Eina_Iterator_Array *it)
{
return (Eina_Array *) it->array;
}
static void
eina_array_iterator_free(Eina_Iterator_Array *it)
{
free(it);
}
static Eina_Bool
eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int index, void **data)
{
if (!(index < eina_array_count(it->array)))
return EINA_FALSE;
if (data)
*data = eina_array_get(it->array, index);
return EINA_TRUE;
}
static Eina_Array *
eina_array_accessor_get_container(Eina_Accessor_Array *it)
{
return (Eina_Array *) it->array;
}
static void
eina_array_accessor_free(Eina_Accessor_Array *it)
{
free(it);
}
/*============================================================================*
* Global *
*============================================================================*/
/*============================================================================*
* API *
*============================================================================*/
EAPI int
eina_array_init(void)
{
@ -93,8 +164,6 @@ eina_array_free(Eina_Array *array)
free(array);
}
#include <stdio.h>
EAPI void
eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata), void *gdata)
{
@ -172,38 +241,6 @@ eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata),
array->count = total;
}
typedef struct _Eina_Iterator_Array Eina_Iterator_Array;
struct _Eina_Iterator_Array
{
Eina_Iterator iterator;
const Eina_Array *array;
unsigned int index;
};
static void *
eina_array_iterator_next(Eina_Iterator_Array *it, void **data)
{
if (!(it->index < eina_array_count(it->array)))
return EINA_FALSE;
if (data)
*data = eina_array_get(it->array, it->index);
it->index++;
return EINA_TRUE;
}
static Eina_Array *
eina_array_iterator_get_container(Eina_Iterator_Array *it)
{
return (Eina_Array *) it->array;
}
static void
eina_array_iterator_free(Eina_Iterator_Array *it)
{
free(it);
}
EAPI Eina_Iterator *
eina_array_iterator_new(const Eina_Array *array)
{
@ -228,36 +265,6 @@ eina_array_iterator_new(const Eina_Array *array)
return &it->iterator;
}
typedef struct _Eina_Accessor_Array Eina_Accessor_Array;
struct _Eina_Accessor_Array
{
Eina_Accessor accessor;
const Eina_Array *array;
};
static Eina_Bool
eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int index, void **data)
{
if (!(index < eina_array_count(it->array)))
return EINA_FALSE;
if (data)
*data = eina_array_get(it->array, index);
return EINA_TRUE;
}
static Eina_Array *
eina_array_accessor_get_container(Eina_Accessor_Array *it)
{
return (Eina_Array *) it->array;
}
static void
eina_array_accessor_free(Eina_Accessor_Array *it)
{
free(it);
}
EAPI Eina_Accessor *
eina_array_accessor_new(const Eina_Array *array)
{

View File

@ -29,7 +29,7 @@
#include "eina_private.h"
/*============================================================================*
* Local *
* Local *
*============================================================================*/
typedef struct _Eina_Hash_El Eina_Hash_El;
typedef struct _Eina_Hash_Foreach Eina_Hash_Foreach;

View File

@ -39,7 +39,7 @@ _eina_test_inlist_build(int i)
return tmp;
}
#include <stdio.h>
START_TEST(eina_inlist_simple)
{
Eina_Test_Inlist *lst = NULL;