From 08e5e4e27d9ac58050f9ebe77a5679157c0ee891 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 11 Jan 2025 21:38:54 +0100 Subject: Fix use of so-far un-set _film, causing crash when you try to add an OV. --- src/tools/dcpomatic_player.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index 3e4c8eb0c..8ccb60937 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -406,7 +406,7 @@ public: auto dcp = make_shared(dir); auto job = make_shared(film, dcp); - auto add_dcp_to_film = [this](weak_ptr weak_job, weak_ptr weak_content) + auto add_dcp_to_film = [this](weak_ptr weak_film, weak_ptr weak_job, weak_ptr weak_content) { auto job = weak_job.lock(); if (!job || !job->finished_ok()) { @@ -418,11 +418,16 @@ public: return; } - _film->add_content(content); + auto film = weak_film.lock(); + if (!film) { + return; + } + + film->add_content(content); _stress.set_suspended(false); }; - _examine_job_connection = job->Finished.connect(bind(add_dcp_to_film, weak_ptr(job), weak_ptr(dcp))); + _examine_job_connection = job->Finished.connect(bind(add_dcp_to_film, weak_ptr(film), weak_ptr(job), weak_ptr(dcp))); JobManager::instance()->add (job); bool const ok = display_progress(variant::wx::dcpomatic_player(), _("Loading content")); if (!ok || !report_errors_from_last_job(this)) { -- cgit v1.2.3