mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Be sure book file is closed before we leave
Move closing of file in Book destructor. This guarantees us against leaving the file open under any case and simplifies also Book use. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
a03b8074c8
commit
2155fb7825
4 changed files with 13 additions and 9 deletions
13
src/book.cpp
13
src/book.cpp
|
@ -344,10 +344,21 @@ namespace {
|
|||
////
|
||||
|
||||
|
||||
/// Destructor. Be sure file is closed before we leave.
|
||||
|
||||
Book::~Book() {
|
||||
|
||||
close();
|
||||
}
|
||||
|
||||
|
||||
/// Book::open() opens a book file with a given file name
|
||||
|
||||
void Book::open(const string& fName) {
|
||||
|
||||
// Close old file before opening the new
|
||||
close();
|
||||
|
||||
fileName = fName;
|
||||
ifstream::open(fileName.c_str(), ifstream::in | ifstream::binary);
|
||||
if (!is_open())
|
||||
|
@ -361,7 +372,6 @@ void Book::open(const string& fName) {
|
|||
if (!good())
|
||||
{
|
||||
cerr << "Failed to open book file " << fileName << endl;
|
||||
close();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
@ -479,7 +489,6 @@ void Book::read_entry(BookEntry& entry, int idx) {
|
|||
if (!good())
|
||||
{
|
||||
cerr << "Failed to read book entry at index " << idx << endl;
|
||||
close();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,8 +53,8 @@ struct BookEntry {
|
|||
};
|
||||
|
||||
class Book : private std::ifstream {
|
||||
|
||||
public:
|
||||
~Book();
|
||||
void open(const std::string& fName);
|
||||
void close();
|
||||
const std::string file_name() const;
|
||||
|
|
|
@ -371,10 +371,8 @@ void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
|
|||
{
|
||||
Move bookMove;
|
||||
if (get_option_value_string("Book File") != OpeningBook.file_name())
|
||||
{
|
||||
OpeningBook.close();
|
||||
OpeningBook.open("book.bin");
|
||||
}
|
||||
|
||||
bookMove = OpeningBook.get_move(pos);
|
||||
if (bookMove != MOVE_NONE)
|
||||
{
|
||||
|
@ -545,7 +543,6 @@ void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
|
|||
|
||||
if (Quit)
|
||||
{
|
||||
OpeningBook.close();
|
||||
stop_threads();
|
||||
quit_eval();
|
||||
exit(0);
|
||||
|
@ -2561,7 +2558,6 @@ namespace {
|
|||
command = "quit";
|
||||
|
||||
if(command == "quit") {
|
||||
OpeningBook.close();
|
||||
stop_threads();
|
||||
quit_eval();
|
||||
exit(0);
|
||||
|
|
|
@ -119,7 +119,6 @@ namespace {
|
|||
|
||||
if (token == "quit")
|
||||
{
|
||||
OpeningBook.close();
|
||||
stop_threads();
|
||||
quit_eval();
|
||||
exit(0);
|
||||
|
|
Loading…
Add table
Reference in a new issue