From 04be6c42ffd3e537de14f6830df5c73efe7ba342 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu>
Date: Wed, 19 Jun 2024 12:40:17 +0200
Subject: [PATCH] [CanProtocol] Avoid copying messages when calling the receive
 callback

---
 src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp | 2 +-
 src/shared/drivers/canbus/CanProtocol/CanProtocol.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp b/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
index a58beed63..c17b89b1e 100644
--- a/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
+++ b/src/shared/drivers/canbus/CanProtocol/CanProtocol.cpp
@@ -32,7 +32,7 @@ namespace Canbus
 
 CanProtocol::CanProtocol(CanbusDriver* can, MsgHandler onReceive,
                          miosix::Priority threadPriority)
-    : can(can), onReceive(onReceive), threadPriority(threadPriority)
+    : can(can), onReceive(std::move(onReceive)), threadPriority(threadPriority)
 {
 }
 
diff --git a/src/shared/drivers/canbus/CanProtocol/CanProtocol.h b/src/shared/drivers/canbus/CanProtocol/CanProtocol.h
index 0f437a53d..128d23a6e 100644
--- a/src/shared/drivers/canbus/CanProtocol/CanProtocol.h
+++ b/src/shared/drivers/canbus/CanProtocol/CanProtocol.h
@@ -47,7 +47,7 @@ namespace Canbus
  */
 class CanProtocol
 {
-    using MsgHandler = std::function<void(CanMessage data)>;
+    using MsgHandler = std::function<void(const CanMessage& data)>;
 
 public:
     /**
-- 
GitLab