diff options
author | David Robillard <d@drobilla.net> | 2021-05-08 19:59:28 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2021-05-08 19:59:28 -0400 |
commit | d8e2cff7a55c71d8c364898b651423ffebfba5d3 (patch) | |
tree | 325c8657d1605c9fb58e5c946667cbb2fd67c2c9 /src | |
parent | 35dcbda281ce508f13e5ef1e524cecabc24ffe87 (diff) | |
download | patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.gz patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.tar.bz2 patchage-d8e2cff7a55c71d8c364898b651423ffebfba5d3.zip |
Remove redundant code
Diffstat (limited to 'src')
-rw-r--r-- | src/Canvas.cpp | 32 | ||||
-rw-r--r-- | src/Canvas.hpp | 1 | ||||
-rw-r--r-- | src/CanvasModule.cpp | 5 | ||||
-rw-r--r-- | src/CanvasModule.hpp | 2 |
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(); |