From a1defa02c0614635e37bfbc22ef9706f406caf55 Mon Sep 17 00:00:00 2001 From: Nav Date: Sat, 17 Dec 2022 14:41:52 +0000 Subject: [PATCH] Pass the TargetDescriptor by const-reference where we can --- src/TargetController/Responses/TargetDescriptor.hpp | 2 +- src/TargetController/TargetControllerComponent.cpp | 8 ++++---- src/TargetController/TargetControllerComponent.hpp | 4 ++-- src/TargetController/TargetControllerConsole.cpp | 2 +- src/TargetController/TargetControllerConsole.hpp | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/TargetController/Responses/TargetDescriptor.hpp b/src/TargetController/Responses/TargetDescriptor.hpp index 54f79b54..7f35929b 100644 --- a/src/TargetController/Responses/TargetDescriptor.hpp +++ b/src/TargetController/Responses/TargetDescriptor.hpp @@ -13,7 +13,7 @@ namespace Bloom::TargetController::Responses public: static constexpr ResponseType type = ResponseType::TARGET_DESCRIPTOR; - Targets::TargetDescriptor targetDescriptor; + const Targets::TargetDescriptor& targetDescriptor; explicit TargetDescriptor(const Targets::TargetDescriptor& targetDescriptor) : targetDescriptor(targetDescriptor) diff --git a/src/TargetController/TargetControllerComponent.cpp b/src/TargetController/TargetControllerComponent.cpp index 8498fa02..040be8c3 100644 --- a/src/TargetController/TargetControllerComponent.cpp +++ b/src/TargetController/TargetControllerComponent.cpp @@ -634,7 +634,7 @@ namespace Bloom::TargetController } void TargetControllerComponent::loadRegisterDescriptors() { - auto& targetDescriptor = this->getTargetDescriptor(); + const auto& targetDescriptor = this->getTargetDescriptor(); for (const auto& [registerType, registerDescriptors] : targetDescriptor.registerDescriptorsByType) { for (const auto& registerDescriptor : registerDescriptors) { @@ -753,12 +753,12 @@ namespace Bloom::TargetController EventManager::triggerEvent(std::make_shared()); } - Targets::TargetDescriptor& TargetControllerComponent::getTargetDescriptor() { + const Targets::TargetDescriptor& TargetControllerComponent::getTargetDescriptor() { if (!this->cachedTargetDescriptor.has_value()) { - this->cachedTargetDescriptor = this->target->getDescriptor(); + this->cachedTargetDescriptor.emplace(this->target->getDescriptor()); } - return this->cachedTargetDescriptor.value(); + return *this->cachedTargetDescriptor; } void TargetControllerComponent::onShutdownTargetControllerEvent(const Events::ShutdownTargetController&) { diff --git a/src/TargetController/TargetControllerComponent.hpp b/src/TargetController/TargetControllerComponent.hpp index 4444b4d1..311f1d16 100644 --- a/src/TargetController/TargetControllerComponent.hpp +++ b/src/TargetController/TargetControllerComponent.hpp @@ -144,7 +144,7 @@ namespace Bloom::TargetController /** * Obtaining a TargetDescriptor for the connected target can be quite expensive. We cache it here. */ - std::optional cachedTargetDescriptor; + std::optional cachedTargetDescriptor; /** * Target register descriptors mapped by the memory type on which the register is stored. @@ -313,7 +313,7 @@ namespace Bloom::TargetController * * @return */ - Targets::TargetDescriptor& getTargetDescriptor(); + const Targets::TargetDescriptor& getTargetDescriptor(); /** * Invokes a shutdown. diff --git a/src/TargetController/TargetControllerConsole.cpp b/src/TargetController/TargetControllerConsole.cpp index 958febe9..9f4c40a4 100644 --- a/src/TargetController/TargetControllerConsole.cpp +++ b/src/TargetController/TargetControllerConsole.cpp @@ -103,7 +103,7 @@ namespace Bloom::TargetController return; } - TargetDescriptor TargetControllerConsole::getTargetDescriptor() { + const TargetDescriptor& TargetControllerConsole::getTargetDescriptor() { return this->commandManager.sendCommandAndWaitForResponse( std::make_unique(), this->defaultTimeout diff --git a/src/TargetController/TargetControllerConsole.hpp b/src/TargetController/TargetControllerConsole.hpp index 540928a0..af83e6e0 100644 --- a/src/TargetController/TargetControllerConsole.hpp +++ b/src/TargetController/TargetControllerConsole.hpp @@ -64,7 +64,7 @@ namespace Bloom::TargetController * * @return */ - Targets::TargetDescriptor getTargetDescriptor(); + const Targets::TargetDescriptor& getTargetDescriptor(); /** * Fetches the current target state.