Use memset instead of loop. Improve types, using void * and unsigned.
Signed-off-by: Zachary T Welch <[email protected]>
---
src/helper/binarybuffer.c | 18 +++++++++---------
src/helper/binarybuffer.h | 3 ++-
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/helper/binarybuffer.c b/src/helper/binarybuffer.c
index e5f9854..8275d12 100644
--- a/src/helper/binarybuffer.c
+++ b/src/helper/binarybuffer.c
@@ -113,17 +113,17 @@ bool buf_cmp_mask(const void *_buf1, const void *_buf2,
}
-uint8_t* buf_set_ones(uint8_t *buf, int count)
+void* buf_set_ones(void *_buf, unsigned size)
{
- for (unsigned i = 0, num_bytes = CEIL(count, 8); i < num_bytes; i++)
- {
- if (count >= 8)
- buf[i] = 0xff;
- else
- buf[i] = (1 << count) - 1;
+ uint8_t *buf = _buf;
+ if (!buf)
+ return NULL;
- count -= 8;
- }
+ memset(buf, 0xff, size / 8);
+
+ unsigned trailing_bits = size % 8;
+ if (trailing_bits)
+ buf[size / 8] = (1 << trailing_bits) - 1;
return buf;
}
diff --git a/src/helper/binarybuffer.h b/src/helper/binarybuffer.h
index 07a5862..b988e40 100644
--- a/src/helper/binarybuffer.h
+++ b/src/helper/binarybuffer.h
@@ -76,7 +76,8 @@ bool buf_cmp_mask(const void *buf1, const void *buf2,
void* buf_cpy(const void *from, void *to, unsigned size);
-uint8_t* buf_set_ones(uint8_t *buf, int count);
+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);
--
1.6.4.4
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development