summaryrefslogtreecommitdiffstats
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
parent35dcbda281ce508f13e5ef1e524cecabc24ffe87 (diff)
downloadpatchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.gz
patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.bz2
patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.zip
Remove redundant code
-rw-r--r--src/Canvas.cpp32
-rw-r--r--src/Canvas.hpp1
-rw-r--r--src/CanvasModule.cpp5
-rw-r--r--src/CanvasModule.hpp2
4 files changed, 8 insertions, 32 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();
diff --git a/src/Canvas.hpp b/src/Canvas.hpp
index 59b886b..c571c5e 100644
--- a/src/Canvas.hpp
+++ b/src/Canvas.hpp
@@ -57,7 +57,6 @@ public:
CanvasPort* find_port(const PortID& id);
void remove_module(const ClientID& id);
- void remove_module(CanvasModule* module);
void remove_ports(bool (*pred)(const CanvasPort*));
diff --git a/src/CanvasModule.cpp b/src/CanvasModule.cpp
index 86cce34..f5b750e 100644
--- a/src/CanvasModule.cpp
+++ b/src/CanvasModule.cpp
@@ -63,11 +63,6 @@ CanvasModule::CanvasModule(Patchage* app,
set_is_source(true);
}
-CanvasModule::~CanvasModule()
-{
- _app->canvas()->remove_module(this);
-}
-
void
CanvasModule::update_menu()
{
diff --git a/src/CanvasModule.hpp b/src/CanvasModule.hpp
index 5259c5b..4f8412e 100644
--- a/src/CanvasModule.hpp
+++ b/src/CanvasModule.hpp
@@ -57,8 +57,6 @@ public:
CanvasModule(CanvasModule&&) = delete;
CanvasModule& operator=(CanvasModule&&) = delete;
- ~CanvasModule() override;
-
bool show_menu(GdkEventButton* ev);
void update_menu();