ev_vec improvements

Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
2024-10-13 17:18:51 +03:00
parent daf5914a51
commit 89fd3a7af9

View File

@@ -134,8 +134,7 @@ ev_vec_init_impl(
}) { \
.meta.length = len, \
.meta.capacity = len, \
.meta.typeData.size = sizeof(T), \
.meta.typeData.alignment = EV_ALIGNOF(T), \
.meta.typeData = TypeData(T), \
.meta.allocationType = EV_VEC_ALLOCATION_TYPE_STACK, \
.data = __VA_ARGS__ \
}).data
@@ -147,8 +146,7 @@ ev_vec_init_impl(
}) { \
.meta.length = 0, \
.meta.capacity = cap, \
.meta.typeData.size = sizeof(T), \
.meta.typeData.alignment = EV_ALIGNOF(T), \
.meta.typeData = TypeData(T), \
.meta.allocationType = EV_VEC_ALLOCATION_TYPE_STACK, \
.data = __EV_VEC_EMPTY_ARRAY \
}).data
@@ -424,20 +422,18 @@ ev_vec_find(
{
__ev_vec_getmeta(*v)
if(metadata->typeData.equal_fn) {
for(u32 i = 0; i < metadata->length; i++) {
void *elem = *v + metadata->typeData.size * i;
for (void *elem = ev_vec_iter_begin(v); elem != ev_vec_iter_end(v); ev_vec_iter_next(v, &elem)) {
if(metadata->typeData.equal_fn(elem, val))
{
return i;
return (elem - *v) / metadata->typeData.size;
}
}
}
else {
for(u32 i = 0; i < metadata->length; i++) {
void *elem = *v + metadata->typeData.size * i;
for (void *elem = ev_vec_iter_begin(v); elem != ev_vec_iter_end(v); ev_vec_iter_next(v, &elem)) {
if(memcmp(elem, val, metadata->typeData.size) == 0)
{
return i;
return (elem - *v) / metadata->typeData.size;
}
}
}