Tidy up and fix assertion failure when selecting a CPL from the menu. v2.16.79
authorCarl Hetherington <cth@carlh.net>
Wed, 20 Mar 2024 14:34:24 +0000 (15:34 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 20 Mar 2024 14:34:24 +0000 (15:34 +0100)
src/wx/content_menu.cc

index 4af5a71b708d66f118d336e1412445274883e4a2..642457d933e0f64aa99b8cc05388b48478ca4806 100644 (file)
@@ -520,15 +520,11 @@ ContentMenu::cpl_selected (wxCommandEvent& ev)
        DCPOMATIC_ASSERT (dcp);
 
        auto cpls = dcp::find_and_resolve_cpls (dcp->directories(), true);
-       DCPOMATIC_ASSERT (ev.GetId() > 0);
-       DCPOMATIC_ASSERT (ev.GetId() <= int (cpls.size()));
 
-       auto i = cpls.begin ();
-       for (int j = 0; j < ev.GetId() - 1; ++j) {
-               ++i;
-       }
+       DCPOMATIC_ASSERT(ev.GetId() >= DCPOMATIC_CPL_MENU);
+       DCPOMATIC_ASSERT(ev.GetId() < int(DCPOMATIC_CPL_MENU + cpls.size()));
+       dcp->set_cpl(cpls[ev.GetId() - DCPOMATIC_CPL_MENU]->id());
 
-       dcp->set_cpl ((*i)->id ());
        auto film = _film.lock ();
        DCPOMATIC_ASSERT (film);
        JobManager::instance()->add (make_shared<ExamineContentJob>(film, dcp));