refactor: changed arrayslice_to_arraylsit
This commit is contained in:
@@ -62,6 +62,6 @@ ArrayListErr arrayslice_next(ArraySlice *slice, void *out);
|
|||||||
ArrayListErr arrayslice_reset(ArraySlice *slice);
|
ArrayListErr arrayslice_reset(ArraySlice *slice);
|
||||||
ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n);
|
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
|
#endif
|
||||||
|
|||||||
@@ -584,13 +584,17 @@ ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n) {
|
|||||||
return ARRLIST_OK;
|
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) {
|
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) {
|
if (slice->start >= slice->end) {
|
||||||
return NULL;
|
return ARRLIST_INVALID_SLICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t len = slice->end - slice->start;
|
size_t len = slice->end - slice->start;
|
||||||
@@ -601,8 +605,9 @@ ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
|
|||||||
arraylist_capacity(slice->arr),
|
arraylist_capacity(slice->arr),
|
||||||
slice->arr->elem_size
|
slice->arr->elem_size
|
||||||
);
|
);
|
||||||
if (new_arr == NULL) {
|
|
||||||
return NULL;
|
if (init_err != ARRLIST_OK) {
|
||||||
|
return init_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(
|
memcpy(
|
||||||
@@ -613,5 +618,6 @@ ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
|
|||||||
|
|
||||||
new_arr->len = len;
|
new_arr->len = len;
|
||||||
|
|
||||||
return new_arr;
|
*arr = new_arr;
|
||||||
|
return ARRLIST_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user