refactor: changed arrayslice_to_arraylsit

This commit is contained in:
2026-05-14 06:53:38 -06:00
parent dc274787e3
commit 36bd2a37c7
2 changed files with 13 additions and 7 deletions

View File

@@ -62,6 +62,6 @@ ArrayListErr arrayslice_next(ArraySlice *slice, void *out);
ArrayListErr arrayslice_reset(ArraySlice *slice);
ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n);
ArrayListErr arrayslice_to_arraylist(ArrayList *arr, const ArraySlice *slice);
ArrayListErr arrayslice_to_arraylist(ArrayList **arr, const ArraySlice *slice);
#endif

View File

@@ -584,13 +584,17 @@ ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n) {
return ARRLIST_OK;
}
ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
ArrayListErr arrayslice_to_arraylist(ArrayList **arr, const ArraySlice *slice) {
if (slice == NULL || slice->arr == NULL) {
return NULL;
return ARRLIST_NULL_ARG;
}
if (arr == NULL || *arr == NULL) {
return ARRLIST_NULL_ARG;
}
if (slice->start >= slice->end) {
return NULL;
return ARRLIST_INVALID_SLICE;
}
size_t len = slice->end - slice->start;
@@ -601,8 +605,9 @@ ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
arraylist_capacity(slice->arr),
slice->arr->elem_size
);
if (new_arr == NULL) {
return NULL;
if (init_err != ARRLIST_OK) {
return init_err;
}
memcpy(
@@ -613,5 +618,6 @@ ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
new_arr->len = len;
return new_arr;
*arr = new_arr;
return ARRLIST_OK;
}