Updated Array API
This commit is contained in:
parent
da796ef52a
commit
f1cd4a8c5c
|
@ -31,27 +31,27 @@
|
|||
typedef struct _Array
|
||||
{
|
||||
char * data;
|
||||
unsigned int count;
|
||||
unsigned int size;
|
||||
size_t count;
|
||||
size_t size;
|
||||
} Array;
|
||||
|
||||
typedef void (*ArrayApplyFunc)(void * data, void * userdata);
|
||||
|
||||
|
||||
/* functions */
|
||||
Array * array_new(unsigned int size);
|
||||
Array * array_new(size_t size);
|
||||
void array_delete(Array * array);
|
||||
|
||||
/* returns */
|
||||
unsigned int array_count(Array * array);
|
||||
size_t array_count(Array * array);
|
||||
|
||||
/* useful */
|
||||
void * array_get(Array * array, unsigned int pos);
|
||||
int array_get_copy(Array * array, unsigned int pos, void * data);
|
||||
int array_set(Array * array, unsigned int pos, void * data);
|
||||
void * array_get(Array * array, size_t pos);
|
||||
int array_get_copy(Array * array, size_t pos, void * data);
|
||||
int array_set(Array * array, size_t pos, void * data);
|
||||
|
||||
int array_append(Array * array, void * data);
|
||||
int array_remove_pos(Array * array, unsigned int pos);
|
||||
int array_remove_pos(Array * array, size_t pos);
|
||||
|
||||
void array_apply(Array * array, ArrayApplyFunc func, void * userdata);
|
||||
|
||||
|
|
12
src/array.c
12
src/array.c
|
@ -22,7 +22,7 @@
|
|||
|
||||
|
||||
/* Array */
|
||||
Array * array_new(unsigned int size)
|
||||
Array * array_new(size_t size)
|
||||
{
|
||||
Array * array;
|
||||
|
||||
|
@ -57,20 +57,20 @@ int array_append(Array * array, void * data)
|
|||
|
||||
void array_apply(Array * array, ArrayApplyFunc func, void * userdata)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
|
||||
for(i = 0; i < array->count; i++)
|
||||
func(&array->data + (i * array->size), userdata);
|
||||
}
|
||||
|
||||
|
||||
unsigned int array_count(Array * array)
|
||||
size_t array_count(Array * array)
|
||||
{
|
||||
return array->count;
|
||||
}
|
||||
|
||||
|
||||
void * array_get(Array * array, unsigned int pos)
|
||||
void * array_get(Array * array, size_t pos)
|
||||
{
|
||||
if(pos >= array->count)
|
||||
return NULL;
|
||||
|
@ -78,7 +78,7 @@ void * array_get(Array * array, unsigned int pos)
|
|||
}
|
||||
|
||||
|
||||
int array_get_copy(Array * array, unsigned int pos, void * data)
|
||||
int array_get_copy(Array * array, size_t pos, void * data)
|
||||
{
|
||||
if(pos >= array->count)
|
||||
return 1;
|
||||
|
@ -87,7 +87,7 @@ int array_get_copy(Array * array, unsigned int pos, void * data)
|
|||
}
|
||||
|
||||
|
||||
int array_remove_pos(Array * array, unsigned int pos)
|
||||
int array_remove_pos(Array * array, size_t pos)
|
||||
{
|
||||
if(pos >= array->count)
|
||||
return 1;
|
||||
|
|
|
@ -64,7 +64,7 @@ Hash * hash_new(void)
|
|||
|
||||
void hash_delete(Hash * hash)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
HashEntry * he;
|
||||
|
||||
for(i = array_count(hash); i > 0; i--)
|
||||
|
@ -77,7 +77,7 @@ void hash_delete(Hash * hash)
|
|||
/* useful */
|
||||
void * hash_get(Hash * hash, char const * name)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
HashEntry * he;
|
||||
|
||||
for(i = array_count(hash); i > 0; i--)
|
||||
|
@ -87,13 +87,14 @@ void * hash_get(Hash * hash, char const * name)
|
|||
if(string_compare(he->name, name) == 0)
|
||||
return he->data;
|
||||
}
|
||||
error_set_code(1, "%s%s", name, ": Not found");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
int hash_set(Hash * hash, char const * name, void * data)
|
||||
{
|
||||
unsigned int i;
|
||||
size_t i;
|
||||
HashEntry he;
|
||||
HashEntry * p;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user