arm_compute v18.08
diff --git a/src/graph/Graph.cpp b/src/graph/Graph.cpp
index e1ffeed..88e2682 100644
--- a/src/graph/Graph.cpp
+++ b/src/graph/Graph.cpp
@@ -41,17 +41,24 @@
std::unique_ptr<INode> &node = _nodes[nid];
- // Remove node connections
if(node)
{
+ // Remove input connections
for(auto &input_eid : node->_input_edges)
{
remove_connection(input_eid);
}
- for(auto &outpud_eid : node->_output_edges)
+
+ // Remove output connections
+ std::set<EdgeID> output_edges_copy = node->output_edges();
+ for(auto &outpud_eid : output_edges_copy)
{
remove_connection(outpud_eid);
}
+
+ // Remove nid from tagged nodes
+ std::vector<NodeID> &tnodes = _tagged_nodes.at(node->type());
+ tnodes.erase(std::remove(tnodes.begin(), tnodes.end(), nid), tnodes.end());
}
node = nullptr;
@@ -164,9 +171,9 @@
return _id;
}
-const std::vector<NodeID> &Graph::inputs()
+const std::vector<NodeID> &Graph::nodes(NodeType type)
{
- return _tagged_nodes[NodeType::Input];
+ return _tagged_nodes[type];
}
std::vector<std::unique_ptr<INode>> &Graph::nodes()