test: tests for arrayslice to aray done

This commit is contained in:
2026-04-23 11:22:57 -06:00
parent 51f1166f31
commit d940b68eef
2 changed files with 45 additions and 6 deletions

View File

@@ -579,18 +579,17 @@ ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n) {
}
ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
if (slice == NULL) {
if (slice == NULL || slice->arr == NULL) {
return NULL;
}
if (slice->current >= slice->end) {
if (slice->start >= slice->end) {
return NULL;
}
ArrayList *new_arr = arraylist_init(
arraylist_capacity(slice->arr),
slice->arr->elem_size);
size_t len = slice->end - slice->start;
ArrayList *new_arr = arraylist_init(arraylist_capacity(slice->arr), slice->arr->elem_size);
if (new_arr == NULL) {
return NULL;
}
@@ -598,8 +597,10 @@ ArrayList *arrayslice_to_arraylist(const ArraySlice *slice) {
memcpy(
new_arr->buffer,
slice->arr->buffer + (slice->start * slice->arr->elem_size),
slice->arr->elem_size * (slice->end - slice->current)
slice->arr->elem_size * len
);
new_arr->len = len;
return new_arr;
}