summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-05-26 23:07:24 -0400
committerDavid Robillard <d@drobilla.net>2022-05-26 23:22:40 -0400
commit6ff13ee2a86a516f27fa80bc9253781dfd3c7787 (patch)
tree588f69eb7e18c3ef8f040dc0ff28d0de5e6f9ee4 /src
parent4a21f42341a9195a3aab5a0281c47740c8bedbc2 (diff)
downloadpatchage-6ff13ee2a86a516f27fa80bc9253781dfd3c7787.tar.gz
patchage-6ff13ee2a86a516f27fa80bc9253781dfd3c7787.tar.bz2
patchage-6ff13ee2a86a516f27fa80bc9253781dfd3c7787.zip
Avoid potential null dereferences
As judged by GCC anyway.
Diffstat (limited to 'src')
-rw-r--r--src/Canvas.cpp5
-rw-r--r--src/Patchage.cpp8
-rw-r--r--src/Reactor.cpp4
3 files changed, 12 insertions, 5 deletions
diff --git a/src/Canvas.cpp b/src/Canvas.cpp
index 6b10128..d86049d 100644
--- a/src/Canvas.cpp
+++ b/src/Canvas.cpp
@@ -312,7 +312,10 @@ disconnect_edge(GanvEdge* edge, void* data)
{
auto* canvas = static_cast<Canvas*>(data);
Ganv::Edge* edgemm = Glib::wrap(edge);
- canvas->on_disconnect(edgemm->get_tail(), edgemm->get_head());
+
+ if (canvas && edgemm) {
+ canvas->on_disconnect(edgemm->get_tail(), edgemm->get_head());
+ }
}
bool
diff --git a/src/Patchage.cpp b/src/Patchage.cpp
index 86d5dbf..7d10abf 100644
--- a/src/Patchage.cpp
+++ b/src/Patchage.cpp
@@ -639,9 +639,11 @@ update_edge_color(GanvEdge* edge, void* data)
auto* patchage = static_cast<Patchage*>(data);
Ganv::Edge* edgemm = Glib::wrap(edge);
- auto* tail = dynamic_cast<CanvasPort*>((edgemm)->get_tail());
- if (tail) {
- edgemm->set_color(patchage->conf().get_port_color(tail->type()));
+ if (edgemm) {
+ auto* tail = dynamic_cast<CanvasPort*>((edgemm)->get_tail());
+ if (tail) {
+ edgemm->set_color(patchage->conf().get_port_color(tail->type()));
+ }
}
}
diff --git a/src/Reactor.cpp b/src/Reactor.cpp
index 6b141f8..b7458f2 100644
--- a/src/Reactor.cpp
+++ b/src/Reactor.cpp
@@ -89,7 +89,9 @@ Reactor::operator()(const action::DisconnectClient& action)
{
if (CanvasModule* mod = find_module(action.client, action.direction)) {
for (Ganv::Port* p : *mod) {
- p->disconnect();
+ if (p) {
+ p->disconnect();
+ }
}
}
}