Blame


1 3b0f3d61 2020-01-22 neels void Chunk_copy(Chunk *src, size_t src_start, Chunk *dst, size_t dst_start, size_t n)
2 3b0f3d61 2020-01-22 neels {
3 3b0f3d61 2020-01-22 neels if (!Chunk_bounds_check(src, src_start, n)) return;
4 3b0f3d61 2020-01-22 neels if (!Chunk_bounds_check(dst, dst_start, n)) return;
5 3b0f3d61 2020-01-22 neels
6 3b0f3d61 2020-01-22 neels memcpy(dst->data + dst_start, src->data + src_start, n);
7 3b0f3d61 2020-01-22 neels }
8 3b0f3d61 2020-01-22 neels
9 3b0f3d61 2020-01-22 neels int Chunk_bounds_check(Chunk *chunk, size_t start, size_t n)
10 3b0f3d61 2020-01-22 neels {
11 3b0f3d61 2020-01-22 neels if (chunk == NULL) return 0;
12 3b0f3d61 2020-01-22 neels
13 3b0f3d61 2020-01-22 neels return start <= chunk->length && n <= chunk->length - start;
14 3b0f3d61 2020-01-22 neels }