New array functions.
* cfw_array_contains() * cfw_array_contains_ptr() * cfw_array_find() * cfw_array_find_ptr()
This commit is contained in:
parent
d6bbd7ba65
commit
ff54f0e5cd
2 changed files with 53 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "cfwobject.h"
|
||||
#include "cfwarray.h"
|
||||
|
@ -203,6 +204,54 @@ cfw_array_pop(CFWArray *array)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
cfw_array_contains(CFWArray *array, void *ptr)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < array->size; i++)
|
||||
if (cfw_equal(array->data[i], ptr))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
cfw_array_contains_ptr(CFWArray *array, void *ptr)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < array->size; i++)
|
||||
if (array->data[i] == ptr)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t
|
||||
cfw_array_find(CFWArray *array, void *ptr)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < array->size; i++)
|
||||
if (cfw_equal(array->data[i], ptr))
|
||||
return i;
|
||||
|
||||
return SIZE_MAX;
|
||||
}
|
||||
|
||||
size_t
|
||||
cfw_array_find_ptr(CFWArray *array, void *ptr)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < array->size; i++)
|
||||
if (array->data[i] == ptr)
|
||||
return i;
|
||||
|
||||
return SIZE_MAX;
|
||||
}
|
||||
|
||||
static CFWClass class = {
|
||||
.name = "CFWArray",
|
||||
.size = sizeof(CFWArray),
|
||||
|
|
|
@ -37,5 +37,9 @@ extern bool cfw_array_set(CFWArray*, size_t, void*);
|
|||
extern bool cfw_array_push(CFWArray*, void*);
|
||||
extern void* cfw_array_last(CFWArray*);
|
||||
extern bool cfw_array_pop(CFWArray*);
|
||||
extern bool cfw_array_contains(CFWArray*, void*);
|
||||
extern bool cfw_array_contains_ptr(CFWArray*, void*);
|
||||
extern size_t cfw_array_find(CFWArray*, void*);
|
||||
extern size_t cfw_array_find_ptr(CFWArray*, void*);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue