From 0f8b5db8cefdd53c06ffd4867b8915d12f6e4603 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 27 Jan 2021 00:21:02 +0800 Subject: [PATCH] boardd: use setUbloxRaw to avoid memory alloc© in pigeon_publish_raw (#19884) * use setUbloxRaw to avoid memory copy * const std::string &dat --- selfdrive/boardd/boardd.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/selfdrive/boardd/boardd.cc b/selfdrive/boardd/boardd.cc index f2a4068b69..174bd357f7 100644 --- a/selfdrive/boardd/boardd.cc +++ b/selfdrive/boardd/boardd.cc @@ -462,16 +462,14 @@ void hardware_control_thread() { } } -static void pigeon_publish_raw(PubMaster &pm, std::string dat) { +static void pigeon_publish_raw(PubMaster &pm, const std::string &dat) { // create message MessageBuilder msg; - auto ublox_raw = msg.initEvent().initUbloxRaw(dat.length()); - memcpy(ublox_raw.begin(), dat.data(), dat.length()); - + capnp::Data::Builder ublox_row((uint8_t*)dat.data(), dat.length()); + msg.initEvent().setUbloxRaw(ublox_row); pm.send("ubloxRaw", msg); } - void pigeon_thread() { if (!panda->is_pigeon){ return; };