diff --git a/src/scheduler/MemoryManager.cpp b/src/scheduler/MemoryManager.cpp index 05f461b82f16b6af4ed412b7336aa2328bcafbe1..8e35913f4832f0e54e26f9be286943eb25f498ba 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 eba195ad967983c08ca7247bd5ef2f37362dfa70..fa57f76db63fb345259d8bf585fef708b1d44a31 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,