refactor: changed arrayslice_to_arraylsit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user