From 1e4532cdb3574cf646191621c82649af24639c77 Mon Sep 17 00:00:00 2001 From: Axel Farrugia <axel.farrugia@cea.fr> Date: Tue, 24 Sep 2024 08:08:38 +0200 Subject: [PATCH] Fixed UpdateNodeNamex --- include/aidge/graph/GraphView.hpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/include/aidge/graph/GraphView.hpp b/include/aidge/graph/GraphView.hpp index 17bd3b1e9..f2789c8e5 100644 --- a/include/aidge/graph/GraphView.hpp +++ b/include/aidge/graph/GraphView.hpp @@ -406,16 +406,19 @@ public: addChild(toOtherNode, mNodeRegistry.at(fromOutNodeName), fromTensor, toTensor); } - inline void updateNodeName(NodePtr nodeToRename, const std::string& newName){ - const std::string& oldName = nodeToRename->name(); - AIDGE_ASSERT(mNodeRegistry.find(newName) != mNodeRegistry.end(), "Name {} is already used in graph {}.", newName, name()); - - if (nodeToRename->name() != ""){ // Case node already had a name - AIDGE_ASSERT(mNodeRegistry.find(oldName) != mNodeRegistry.end(), "No node named {} in graph {}, the graph may be corrupted !", oldName, name()); - mNodeRegistry[newName] = mNodeRegistry[oldName]; - mNodeRegistry.erase(oldName); - }else{ // Case node did not had a name - mNodeRegistry[newName] = nodeToRename; + inline void updateNodeName(const std::shared_ptr<Node>& node, const std::string& newName){ + if (!newName.empty()) { + auto itNew = mNodeRegistry.insert(std::make_pair(newName, node)); + if (!itNew.second) { + Log::notice("Replacing existing node name in graph node name registry: {}", newName); + (itNew.first)->second = node; + } + } + + if (!node->name().empty()) { + const auto it = mNodeRegistry.find(node->name()); + AIDGE_ASSERT(it != mNodeRegistry.end(), "No node named {} in graph {}, the graph may be corrupted !", node->name(), name()); + mNodeRegistry.erase(it); } } -- GitLab