From 797c362500bbf0fb712e47449188c502fc9711a2 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 30 Aug 2023 20:46:20 +0200 Subject: [PATCH] Fix segfault when undoing marker deletion find_location_markers() may return NULL. This also consolidates code from acc55083e5d --- gtk2_ardour/editor_markers.cc | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index f2608232f0..5e375f5186 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -663,21 +663,19 @@ Editor::update_section_rects () double const left = sample_to_pixel (start.samples ()); double const right = sample_to_pixel (end.samples ()); - Editor::LocationMarkers* markers = find_location_markers (l); - ArdourCanvas::Rectangle* rect = new ArdourCanvas::Rectangle (section_marker_bar, ArdourCanvas::Rect (left, 1, right, timebar_height)); rect->set_fill (true); rect->set_outline_what(ArdourCanvas::Rectangle::What(0)); rect->raise_to_top (); - if (bright) { - markers->set_color("arrangement rect"); - rect->set_fill_color (UIConfiguration::instance().color ("arrangement rect")); - } else { - markers->set_color("arrangement rect alt"); - rect->set_fill_color (UIConfiguration::instance().color ("arrangement rect alt")); + + std::string const color = bright ? "arrangement rect" : "arrangement rect alt"; + rect->set_fill_color (UIConfiguration::instance().color (color)); + + Editor::LocationMarkers* markers = find_location_markers (l); + if (markers) { + markers->set_color (color); } bright = !bright; - } } while (l); }