summaryrefslogtreecommitdiffstats
path: root/src/Canvas.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-05-08 19:59:28 -0400
committerDavid Robillard <d@drobilla.net>2021-05-08 19:59:28 -0400
commitd8e2cff7a55c71d8c364898b651423ffebfba5d3 (patch)
tree325c8657d1605c9fb58e5c946667cbb2fd67c2c9 /src/Canvas.cpp
parent35dcbda281ce508f13e5ef1e524cecabc24ffe87 (diff)
downloadpatchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.gz
patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.bz2
patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.zip
Remove redundant code
Diffstat (limited to 'src/Canvas.cpp')
-rw-r--r--src/Canvas.cpp32
1 files changed, 8 insertions, 24 deletions
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<CanvasModule*> empty;
+ Predicate pred;
+ std::set<ClientID> 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);
}
}
@@ -320,20 +318,6 @@ Canvas::make_connection(Ganv::Node* tail, Ganv::Node* head)
}
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()
{
_port_index.clear();