From 9ff6d1b786c52d0aae485507d96ea67f3171b9fd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 31 Jul 2020 01:04:43 +0200 Subject: [PATCH] Fix crash on too-early update of closed caption dialog. --- src/wx/closed_captions_dialog.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/wx/closed_captions_dialog.cc b/src/wx/closed_captions_dialog.cc index 625652b8c..4519c4b7c 100644 --- a/src/wx/closed_captions_dialog.cc +++ b/src/wx/closed_captions_dialog.cc @@ -165,22 +165,23 @@ ClosedCaptionsDialog::update () if (!_current && !_tracks.empty()) { /* We have no current one: get another */ shared_ptr butler = _butler.lock (); - DCPOMATIC_ASSERT (butler); DCPOMATIC_ASSERT (_track->GetSelection() >= 0); DCPOMATIC_ASSERT (_track->GetSelection() < int(_tracks.size())); DCPTextTrack track = _tracks[_track->GetSelection()]; - while (true) { - optional d = butler->get_closed_caption (); - if (!d) { - break; - } - if (d->track == track) { - _current = d; - break; + if (butler) { + while (true) { + optional d = butler->get_closed_caption (); + if (!d) { + break; + } + if (d->track == track) { + _current = d; + break; + } } - } - _current_in_lines = false; + _current_in_lines = false; + } } if (_current && _current->period.contains(time)) { -- 2.30.2