From 6e4671ef4af2a6c01a59bcaec92fe6c1f2bd2d04 Mon Sep 17 00:00:00 2001 From: NAUD Maxence <maxence.naud@cea.fr> Date: Wed, 26 Feb 2025 12:40:38 +0000 Subject: [PATCH] fix 'possibly dangling reference to a temporary' message --- src/scheduler/MemoryManager.cpp | 2 +- src/scheduler/Scheduler.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/scheduler/MemoryManager.cpp b/src/scheduler/MemoryManager.cpp index 05f461b82..8e35913f4 100644 --- a/src/scheduler/MemoryManager.cpp +++ b/src/scheduler/MemoryManager.cpp @@ -572,7 +572,7 @@ Aidge::MemoryManager::getPlanes(const std::shared_ptr<Node>& node) const const std::map<std::shared_ptr<Node>, std::vector<MemoryPlane> > ::const_iterator it = mMemPlanes.find(node); - if (it == mMemPlanes.end()) { + if (it == mMemPlanes.cend()) { AIDGE_THROW_OR_ABORT(std::runtime_error, "getSize(): no memory allocated for node name {}", node->name()); } diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp index eba195ad9..fa57f76db 100644 --- a/src/scheduler/Scheduler.cpp +++ b/src/scheduler/Scheduler.cpp @@ -591,7 +591,8 @@ Aidge::MemoryManager Aidge::Scheduler::generateMemory(bool incProducers, bool wr node->name(), node->type()); const bool isWrappable = (requiredProtected.data < requiredData.data); - const MemoryManager::MemoryPlane& memPlane = memManager.getPlanes(parent.first).end()[-parent.first->nbOutputs()+parent.second]; + const auto& memPlanes = memManager.getPlanes(parent.first); + const MemoryManager::MemoryPlane& memPlane = memPlanes.at(memPlanes.size() - parent.first->nbOutputs() + parent.second); // use at() to avoid dangling reference pointer if (isWrappable || !memManager.isWrapAround( memPlane.memSpace, @@ -759,10 +760,11 @@ Aidge::MemoryManager Aidge::Scheduler::generateMemoryAutoConcat(bool incProducer node->name(), node->type()); const bool isWrappable = (requiredProtected.data < requiredData.data); + const auto& memPlanes = memManager.getPlanes(parent.first); const MemoryManager::MemoryPlane& memPlane = (concat && itConcat != concatMemPlane.end()) ? itConcat->second - : memManager.getPlanes(parent.first).end()[-parent.first->nbOutputs()+parent.second]; + : memPlanes.at(memPlanes.size()-parent.first->nbOutputs()+parent.second); // use at() to avoid dangling reference pointer if (isWrappable || !memManager.isWrapAround( memPlane.memSpace, -- GitLab