From af138d19379effc9862691639d0f7c4f393ae7ff Mon Sep 17 00:00:00 2001 From: Tomasz Sobczyk Date: Thu, 22 Oct 2020 11:20:31 +0200 Subject: [PATCH] Fix crashes when trying to open a file of unknown type. Increase robustness of error handling. --- src/learn/sfen_reader.h | 22 ++++++++++++++++++---- src/learn/sfen_stream.h | 1 - 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/learn/sfen_reader.h b/src/learn/sfen_reader.h index 2645bb6c..38c2532c 100644 --- a/src/learn/sfen_reader.h +++ b/src/learn/sfen_reader.h @@ -187,11 +187,25 @@ namespace Learner{ filenames.pop_front(); sfen_input_stream = open_sfen_input_file(filename); - std::cout << "open filename = " << filename << std::endl; - // in case the file is empty or was deleted. - if (!sfen_input_stream->eof()) - return true; + if (sfen_input_stream == nullptr) + { + std::cout << "File does not exist: " << filename << '\n'; + } + else + { + std::cout << "Opened file for reading: " << filename << '\n'; + + // in case the file is empty or was deleted. + if (sfen_input_stream->eof()) + { + std::cout << "File empty, nothing to read.\n"; + } + else + { + return true; + } + } } }; diff --git a/src/learn/sfen_stream.h b/src/learn/sfen_stream.h index 4d44901b..d25dd41d 100644 --- a/src/learn/sfen_stream.h +++ b/src/learn/sfen_stream.h @@ -191,7 +191,6 @@ namespace Learner { else if (has_extension(filename, BinpackSfenInputStream::extension)) return std::make_unique(filename); - assert(false); return nullptr; }