From d8e2cff7a55c71d8c364898b651423ffebfba5d3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 8 May 2021 19:59:28 -0400 Subject: Remove redundant code --- src/Canvas.cpp | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) (limited to 'src/Canvas.cpp') diff --git a/src/Canvas.cpp b/src/Canvas.cpp index 30212c7..b9e5e52 100644 --- a/src/Canvas.cpp +++ b/src/Canvas.cpp @@ -149,11 +149,9 @@ void Canvas::remove_module(const ClientID& id) { auto i = _module_index.find(id); - while (i != _module_index.end()) { - CanvasModule* mod = i->second; - _module_index.erase(i); - i = _module_index.find(id); - delete mod; + while (i != _module_index.end() && i->first == id) { + delete i->second; + i = _module_index.erase(i); } } @@ -184,8 +182,8 @@ struct RemovePortsData { : pred(p) {} - Predicate pred; - std::set empty; + Predicate pred; + std::set empty_clients; }; static void @@ -216,7 +214,7 @@ remove_ports_matching(GanvNode* node, void* cdata) pmodule->for_each_port(delete_port_if_matches, data); if (pmodule->num_ports() == 0) { - data->empty.insert(pmodule); + data->empty_clients.insert(pmodule->id()); } } @@ -236,8 +234,8 @@ Canvas::remove_ports(bool (*pred)(const CanvasPort*)) i = next; } - for (CanvasModule* m : data.empty) { - delete m; + for (ClientID id : data.empty_clients) { + remove_module(id); } } @@ -319,20 +317,6 @@ Canvas::make_connection(Ganv::Node* tail, Ganv::Node* head) return true; } -void -Canvas::remove_module(CanvasModule* module) -{ - // Remove module from cache - for (auto i = _module_index.find(module->id()); - i != _module_index.end() && i->first == module->id(); - ++i) { - if (i->second == module) { - _module_index.erase(i); - return; - } - } -} - void Canvas::clear() { -- cgit v1.2.1