From 51dd3da11ce169fec831fef20efc73d2ba495702 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Mon, 24 Jan 2022 11:31:40 -0500
Subject: [PATCH] input_common/main: Pass MappingData by const reference in
 callbacks

Avoids creating unnecessary 168 byte copies per callback invocation.
---
 src/input_common/input_engine.h | 2 +-
 src/input_common/main.cpp       | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h
index 390581c948..5d4fdb4cc6 100644
--- a/src/input_common/input_engine.h
+++ b/src/input_common/input_engine.h
@@ -89,7 +89,7 @@ struct UpdateCallback {
 
 // Triggered if data changed on the controller and the engine is on configuring mode
 struct MappingCallback {
-    std::function<void(MappingData)> on_data;
+    std::function<void(const MappingData&)> on_data;
 };
 
 // Input Identifier of data source
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp
index 940744c5f0..e2b415bf6f 100644
--- a/src/input_common/main.cpp
+++ b/src/input_common/main.cpp
@@ -27,7 +27,7 @@ namespace InputCommon {
 struct InputSubsystem::Impl {
     void Initialize() {
         mapping_factory = std::make_shared<MappingFactory>();
-        MappingCallback mapping_callback{[this](MappingData data) { RegisterInput(data); }};
+        MappingCallback mapping_callback{[this](const MappingData& data) { RegisterInput(data); }};
 
         keyboard = std::make_shared<Keyboard>("keyboard");
         keyboard->SetMappingCallback(mapping_callback);
@@ -284,7 +284,7 @@ struct InputSubsystem::Impl {
 #endif
     }
 
-    void RegisterInput(MappingData data) {
+    void RegisterInput(const MappingData& data) {
         mapping_factory->RegisterInput(data);
     }