From d8a2e55855b50eda28ec7d394449274f5e085bd6 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 5 Feb 2014 14:52:23 +0000 Subject: Fix some coverity-reported stuff. --- src/tools/dcpomatic_create.cc | 52 +++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'src/tools/dcpomatic_create.cc') diff --git a/src/tools/dcpomatic_create.cc b/src/tools/dcpomatic_create.cc index 8be468b30..8dc4de50e 100644 --- a/src/tools/dcpomatic_create.cc +++ b/src/tools/dcpomatic_create.cc @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include "lib/version.h" @@ -34,6 +35,7 @@ using std::string; using std::cout; using std::cerr; using std::list; +using std::exception; using boost::shared_ptr; static void @@ -98,31 +100,37 @@ main (int argc, char* argv[]) dcpomatic_setup (); ui_signaller = new UISignaller (); - shared_ptr film (new Film (output)); - if (!name.empty ()) { - film->set_name (name); - } - - for (int i = optind; i < argc; ++i) { - film->examine_and_add_content (content_factory (film, argv[i])); - } - - JobManager* jm = JobManager::instance (); - while (jm->work_to_do ()) { - ui_signaller->ui_idle (); - } - - if (jm->errors ()) { - list > jobs = jm->get (); - for (list >::iterator i = jobs.begin(); i != jobs.end(); ++i) { - if ((*i)->finished_in_error ()) { - cerr << (*i)->error_summary () << "\n" - << (*i)->error_details () << "\n"; + try { + shared_ptr film (new Film (output)); + if (!name.empty ()) { + film->set_name (name); + } + + for (int i = optind; i < argc; ++i) { + film->examine_and_add_content (content_factory (film, argv[i])); + } + + JobManager* jm = JobManager::instance (); + while (jm->work_to_do ()) { + ui_signaller->ui_idle (); + } + + if (jm->errors ()) { + list > jobs = jm->get (); + for (list >::iterator i = jobs.begin(); i != jobs.end(); ++i) { + if ((*i)->finished_in_error ()) { + cerr << (*i)->error_summary () << "\n" + << (*i)->error_details () << "\n"; + } } + exit (EXIT_FAILURE); } + + film->write_metadata (); + } catch (exception& e) { + cerr << argv[0] << ": " << e.what() << "\n"; exit (EXIT_FAILURE); } - - film->write_metadata (); + return 0; } -- cgit v1.2.3