improve buf_set_ones
authorZachary T Welch <zw@superlucidity.net>
Sat, 14 Nov 2009 18:41:35 +0000 (10:41 -0800)
committerZachary T Welch <zw@superlucidity.net>
Mon, 16 Nov 2009 08:46:34 +0000 (00:46 -0800)
Use memset instead of loop. Improve types, using void * and unsigned.

src/helper/binarybuffer.c
src/helper/binarybuffer.h

index e5f9854d44a1fcc966129dd48f2c332deb6005c9..8275d12476ad40ad55eacb1e9d188c8bb0cc5b32 100644 (file)
@@ -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;
 }
index 07a586248fafaaf178889468db2ec4a7393049a0..b988e403fe40a1d190c536ff71b23e7f597e1af2 100644 (file)
@@ -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);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)