From: Thilo Schulz Date: Sun, 1 Feb 2015 14:58:36 +0000 (+0100) Subject: Use memcpy/memmove instead of loop operations X-Git-Tag: libevdev-1.4~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7571dc49e5237830ba53a1fe9156d56ef15ba6ee;p=platform%2Fupstream%2Flibevdev.git Use memcpy/memmove instead of loop operations Signed-off-by: Thilo Schulz Signed-off-by: Peter Hutterer --- diff --git a/libevdev/libevdev-int.h b/libevdev/libevdev-int.h index 5e5ab26..372db53 100644 --- a/libevdev/libevdev-int.h +++ b/libevdev/libevdev-int.h @@ -193,22 +193,21 @@ queue_peek(struct libevdev *dev, size_t idx, struct input_event *ev) static inline int queue_shift_multiple(struct libevdev *dev, size_t n, struct input_event *ev) { - size_t i; + size_t remaining; if (dev->queue_next == 0) return 0; - n = min(n, dev->queue_next); + remaining = dev->queue_next; + n = min(n, remaining); + remaining -= n; - if (ev) { - for (i = 0; i < n; i++) - ev[i] = dev->queue[i]; - } + if (ev) + memcpy(ev, dev->queue, n * sizeof(*ev)); - for (i = 0; i < dev->queue_next - n; i++) - dev->queue[i] = dev->queue[n + i]; + memmove(dev->queue, &dev->queue[n], remaining * sizeof(*dev->queue)); - dev->queue_next -= n; + dev->queue_next = remaining; return n; }