From 21b452cf675bd3bb307c0d58c6cc45a028d7df3a Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Sat, 14 Nov 2009 10:44:37 -0800 Subject: [PATCH] improve buf_set_buf helper Use void * and unsigned types for buffer and their sizes. Allows it to be used with more than uint8_t * without casts. --- src/helper/binarybuffer.c | 9 ++++++--- src/helper/binarybuffer.h | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/helper/binarybuffer.c b/src/helper/binarybuffer.c index 8275d124..53ad4d39 100644 --- a/src/helper/binarybuffer.c +++ b/src/helper/binarybuffer.c @@ -128,11 +128,14 @@ void* buf_set_ones(void *_buf, unsigned size) return buf; } -uint8_t* buf_set_buf(const uint8_t *src, int src_start, uint8_t *dst, int dst_start, int len) +void* buf_set_buf(const void *_src, unsigned src_start, + void *_dst, unsigned dst_start, unsigned len) { - int src_idx = src_start, dst_idx = dst_start; + const uint8_t *src = _src; + uint8_t *dst = _dst; - for (int i = 0; i < len; i++) + unsigned src_idx = src_start, dst_idx = dst_start; + for (unsigned i = 0; i < len; i++) { if (((src[src_idx / 8] >> (src_idx % 8)) & 1) == 1) dst[dst_idx / 8] |= 1 << (dst_idx % 8); diff --git a/src/helper/binarybuffer.h b/src/helper/binarybuffer.h index b988e403..9397fcfc 100644 --- a/src/helper/binarybuffer.h +++ b/src/helper/binarybuffer.h @@ -78,8 +78,8 @@ void* buf_cpy(const void *from, void *to, unsigned size); void* buf_set_ones(void *buf, unsigned count); -uint8_t* buf_set_buf(const uint8_t *src, int src_start, - uint8_t *dst, int dst_start, int len); +void* buf_set_buf(const void *src, unsigned src_start, + void *dst, unsigned dst_start, unsigned len); int str_to_buf(const char *str, unsigned len, void *bin_buf, unsigned buf_size, unsigned radix); -- 2.39.5