(#1034) Implement dynarray_copy_to
This commit is contained in:
parent
06122f045c
commit
7d2500adc4
@ -207,3 +207,12 @@ void dynarray_replace_at(Dynarray *dynarray, size_t index, void *element)
|
|||||||
element,
|
element,
|
||||||
dynarray->element_size);
|
dynarray->element_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dynarray_copy_to(Dynarray *dynarray, void *dest, size_t index)
|
||||||
|
{
|
||||||
|
trace_assert(dynarray);
|
||||||
|
trace_assert(dest);
|
||||||
|
trace_assert(index < dynarray->count);
|
||||||
|
|
||||||
|
memcpy(dest, dynarray->data + index * dynarray->element_size, dynarray->element_size);
|
||||||
|
}
|
||||||
|
@ -12,6 +12,7 @@ size_t dynarray_count(const Dynarray *dynarray);
|
|||||||
void *dynarray_data(Dynarray *dynarray);
|
void *dynarray_data(Dynarray *dynarray);
|
||||||
void *dynarray_pointer_at(Dynarray *dynarray, size_t index);
|
void *dynarray_pointer_at(Dynarray *dynarray, size_t index);
|
||||||
void dynarray_replace_at(Dynarray *dynarray, size_t index, void *element);
|
void dynarray_replace_at(Dynarray *dynarray, size_t index, void *element);
|
||||||
|
void dynarray_copy_to(Dynarray *dynarray, void *dest, size_t index);
|
||||||
void dynarray_clear(Dynarray *dynarray);
|
void dynarray_clear(Dynarray *dynarray);
|
||||||
// O(1) amortized
|
// O(1) amortized
|
||||||
// TODO(#981): dynarray_push should be called dynarray_push_copy
|
// TODO(#981): dynarray_push should be called dynarray_push_copy
|
||||||
|
Loading…
x
Reference in New Issue
Block a user