Index: ui/events/ozone/evdev/gamepad_event_converter_evdev.cc |
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc |
index e1d719ae515b92a457aef438c7a946b51ec195de..02fbb8604afcf8389849c697629848fe5486e96d 100644 |
--- a/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc |
+++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc |
@@ -107,7 +107,7 @@ GamepadEventConverterEvdev::GamepadEventConverterEvdev( |
last_hat_right_press_(false), |
last_hat_up_press_(false), |
last_hat_down_press_(false), |
- mapper_(GetGamepadMapper(devinfo.vendor_id(), devinfo.product_id())), |
+ mapper_(GetGamepadMapper(devinfo)), |
input_device_fd_(std::move(fd)), |
dispatcher_(dispatcher) { |
input_absinfo abs_info; |
@@ -125,7 +125,7 @@ GamepadEventConverterEvdev::GamepadEventConverterEvdev( |
if (abs_info.fuzz == 0) { |
abs_info.fuzz = abs_info.flat * 0.25f; |
} |
- mapper_(EV_ABS, code, &mapped_type, &mapped_code); |
+ (*mapper_)(EV_ABS, code, &mapped_type, &mapped_code); |
axes_[code] = Axis(abs_info, mapped_type, mapped_code); |
} |
} |
@@ -133,6 +133,7 @@ GamepadEventConverterEvdev::GamepadEventConverterEvdev( |
GamepadEventConverterEvdev::~GamepadEventConverterEvdev() { |
DCHECK(!enabled_); |
+ delete mapper_; |
} |
bool GamepadEventConverterEvdev::HasGamepad() const { |
@@ -190,7 +191,7 @@ void GamepadEventConverterEvdev::ProcessEvdevKey( |
GamepadEventType mapped_type; |
uint16_t mapped_code; |
- bool found_map = mapper_(EV_KEY, code, &mapped_type, &mapped_code); |
+ bool found_map = (*mapper_)(EV_KEY, code, &mapped_type, &mapped_code); |
// If we cannot find a map for this event, it will be discarded. |
if (!found_map) { |