]> sigrok.org Git - libsigrok.git/commitdiff
serial-dmm: style nit (init vs assign, memmove(3))
authorGerhard Sittig <redacted>
Wed, 7 Feb 2018 21:34:35 +0000 (22:34 +0100)
committerUwe Hermann <redacted>
Sun, 18 Feb 2018 14:43:34 +0000 (15:43 +0100)
Move the initial assignment to the 'offset' variable to the very spot
where it gets evaluated and subsequently manipulated.

Replace a DIY copy loop with the corresponding memmove(3) call.

src/hardware/serial-dmm/protocol.c

index 39bd965bac1c7c8538fea893a76a31b19bfef7cb..9d3bc916271cb6e9fc0bc0cd09328f56ecde8862 100644 (file)
@@ -116,7 +116,7 @@ static void handle_new_data(struct sr_dev_inst *sdi, void *info)
 {
        struct dmm_info *dmm;
        struct dev_context *devc;
-       int len, i, offset = 0;
+       int len, offset;
        struct sr_serial_dev_inst *serial;
 
        dmm = (struct dmm_info *)sdi->driver;
@@ -136,6 +136,7 @@ static void handle_new_data(struct sr_dev_inst *sdi, void *info)
        devc->buflen += len;
 
        /* Now look for packets in that data. */
+       offset = 0;
        while ((devc->buflen - offset) >= dmm->packet_size) {
                if (dmm->packet_valid(devc->buf + offset)) {
                        handle_packet(devc->buf + offset, sdi, info);
@@ -154,8 +155,8 @@ static void handle_new_data(struct sr_dev_inst *sdi, void *info)
        }
 
        /* If we have any data left, move it to the beginning of our buffer. */
-       for (i = 0; i < devc->buflen - offset; i++)
-               devc->buf[i] = devc->buf[offset + i];
+       if (devc->buflen > offset)
+               memmove(devc->buf, devc->buf + offset, devc->buflen - offset);
        devc->buflen -= offset;
 }