mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2025-12-24 22:50:05 +01:00
Use memcpy/memmove instead of loop operations
Signed-off-by: Thilo Schulz <thilo@tjps.eu> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
867a237c55
commit
7571dc49e5
1 changed files with 8 additions and 9 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue