From ab0e8cdcafdcb83096012380f674b8280474e851 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 29 Sep 2019 23:28:57 +0200 Subject: Improve OpenFileError so that it doesn't say "opening for read" in one case where it should say "opening for read/write". Also add some unit tests for ReelWriter. --- src/lib/reel_writer.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/lib/reel_writer.cc') diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 69709fa0d..263148902 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -64,6 +64,7 @@ using namespace dcpomatic; int const ReelWriter::_info_size = 48; +/** @param job Related job, or 0 */ ReelWriter::ReelWriter ( shared_ptr film, DCPTimePeriod period, shared_ptr job, int reel_index, int reel_count, optional content_summary ) @@ -99,7 +100,9 @@ ReelWriter::ReelWriter ( _film->internal_video_asset_dir() / _film->internal_video_asset_filename(_period) ); - job->sub (_("Checking existing image data")); + if (job) { + job->sub (_("Checking existing image data")); + } _first_nonexistant_frame = check_existing_picture_asset (); _picture_asset_writer = _picture_asset->start_write ( @@ -141,8 +144,9 @@ ReelWriter::write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const } else { file = fopen_boost (info_file, "wb"); } + if (!file) { - throw OpenFileError (info_file, errno, read); + throw OpenFileError (info_file, errno, read ? OpenFileError::READ_WRITE : OpenFileError::WRITE); } dcpomatic_fseek (file, frame_info_position (frame, eyes), SEEK_SET); checked_fwrite (&info.offset, sizeof (info.offset), file, info_file); -- cgit v1.2.3