In the files below, a.c
is the original version.
Version b.c
swaps the order of the functions and makes no other changes.
Version c.c
adds a comment to Chunk_copy
.
This is what you get if you merge b.c
and c.c
using Git's default diff algorithm.
int Chunk_bounds_check(Chunk *chunk, size_t start, size_t n)
{
if (chunk == NULL) return 0;
<<<<<<<
size_t length = chunk->length;
=======
// copy the bytes
memcpy(dst->data + dst_start, src->data + src_start, n);
>>>>>>>
return start <= length && n <= length - start;
}
size_t Chunk_copy(Chunk *src, size_t src_start, Chunk *dst, size_t dst_start, size_t n)
{
if (!Chunk_bounds_check(src, src_start, n)) return 0;
if (!Chunk_bounds_check(dst, dst_start, n)) return 0;
memcpy(dst->data + dst_start, src->data + src_start, n);
return n;
}