addtition: slice to array, needs testing
This commit is contained in:
@@ -577,3 +577,29 @@ ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n) {
|
||||
|
||||
return ARRLIST_OK;
|
||||
}
|
||||
|
||||
ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
|
||||
if (slice == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (slice->current >= slice->end) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ArrayList *new_arr = arraylist_init(
|
||||
arraylist_capacity(slice->arr),
|
||||
slice->arr->elem_size);
|
||||
|
||||
if (new_arr == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memcpy(
|
||||
new_arr->buffer,
|
||||
slice->arr->buffer + (slice->start * slice->arr->elem_size),
|
||||
slice->arr->elem_size * (slice->end - slice->current)
|
||||
);
|
||||
|
||||
return new_arr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user