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 <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "cfwobject.h"
|
#include "cfwobject.h"
|
||||||
#include "cfwarray.h"
|
#include "cfwarray.h"
|
||||||
|
@ -203,6 +204,54 @@ cfw_array_pop(CFWArray *array)
|
||||||
return true;
|
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 = {
|
static CFWClass class = {
|
||||||
.name = "CFWArray",
|
.name = "CFWArray",
|
||||||
.size = sizeof(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 bool cfw_array_push(CFWArray*, void*);
|
||||||
extern void* cfw_array_last(CFWArray*);
|
extern void* cfw_array_last(CFWArray*);
|
||||||
extern bool cfw_array_pop(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
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue