diff options
Diffstat (limited to 'libs/regex/src/fileiter.cpp')
-rw-r--r-- | libs/regex/src/fileiter.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libs/regex/src/fileiter.cpp b/libs/regex/src/fileiter.cpp index 780a12f16..5f65127ff 100644 --- a/libs/regex/src/fileiter.cpp +++ b/libs/regex/src/fileiter.cpp @@ -267,14 +267,15 @@ void mapfile::lock(pointer* node)const read_size = std::fread(*node + sizeof(int), _size % buf_size, 1, hfile); else read_size = std::fread(*node + sizeof(int), buf_size, 1, hfile); -#ifndef BOOST_NO_EXCEPTIONS if((read_size == 0) || (std::ferror(hfile))) { +#ifndef BOOST_NO_EXCEPTIONS + unlock(node); throw std::runtime_error("Unable to read file."); - } #else - BOOST_REGEX_NOEH_ASSERT((0 == std::ferror(hfile)) && (read_size != 0)); + BOOST_REGEX_NOEH_ASSERT((0 == std::ferror(hfile)) && (read_size != 0)); #endif + } } else { |