From 6ff13ee2a86a516f27fa80bc9253781dfd3c7787 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 26 May 2022 23:07:24 -0400 Subject: Avoid potential null dereferences As judged by GCC anyway. --- src/Canvas.cpp | 5 ++++- src/Patchage.cpp | 8 +++++--- src/Reactor.cpp | 4 +++- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src') 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(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(data); Ganv::Edge* edgemm = Glib::wrap(edge); - auto* tail = dynamic_cast((edgemm)->get_tail()); - if (tail) { - edgemm->set_color(patchage->conf().get_port_color(tail->type())); + if (edgemm) { + auto* tail = dynamic_cast((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(); + } } } } -- cgit v1.2.1