diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2016-04-14 15:38:42 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2016-04-18 08:40:42 +1000 |
commit | b31618b25b03dd609f6104ca5159343f446033d5 (patch) | |
tree | c6e3b62042720818a8e9d70dd7ac1fe3bb5893e4 /src | |
parent | ef4e96de589114b6dde9b9c310ad3a290f7d6429 (diff) |
evdev: use a slot variable instead of dereferencing everywhere
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/evdev.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/evdev.c b/src/evdev.c index d9d23025..4f69cb1e 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -353,8 +353,11 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) struct normalized_coords accel, unaccel; struct device_coords point; struct device_float_coords raw; + struct mt_slot *slot = NULL; slot_idx = device->mt.slot; + if (device->mt.slots) + slot = &device->mt.slots[slot_idx]; switch (device->pending_event) { case EVDEV_NONE: @@ -395,7 +398,7 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) if (!(device->seat_caps & EVDEV_DEVICE_TOUCH)) break; - if (device->mt.slots[slot_idx].seat_slot != -1) { + if (slot->seat_slot != -1) { log_bug_kernel(libinput, "%s: Driver sent multiple touch down for the " "same slot", @@ -404,13 +407,13 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) } seat_slot = ffs(~seat->slot_map) - 1; - device->mt.slots[slot_idx].seat_slot = seat_slot; + slot->seat_slot = seat_slot; if (seat_slot == -1) break; seat->slot_map |= 1 << seat_slot; - point = device->mt.slots[slot_idx].point; + point = slot->point; evdev_transform_absolute(device, &point); touch_notify_touch_down(base, time, slot_idx, seat_slot, @@ -420,8 +423,8 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) if (!(device->seat_caps & EVDEV_DEVICE_TOUCH)) break; - seat_slot = device->mt.slots[slot_idx].seat_slot; - point = device->mt.slots[slot_idx].point; + seat_slot = slot->seat_slot; + point = slot->point; if (seat_slot == -1) break; @@ -434,8 +437,8 @@ evdev_flush_pending_event(struct evdev_device *device, uint64_t time) if (!(device->seat_caps & EVDEV_DEVICE_TOUCH)) break; - seat_slot = device->mt.slots[slot_idx].seat_slot; - device->mt.slots[slot_idx].seat_slot = -1; + seat_slot = slot->seat_slot; + slot->seat_slot = -1; if (seat_slot == -1) break; |