diff options
Diffstat (limited to 'src/expr.cc')
-rw-r--r-- | src/expr.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/expr.cc b/src/expr.cc index 0769d575..5bc537d9 100644 --- a/src/expr.cc +++ b/src/expr.cc @@ -52,8 +52,9 @@ void expr_t::parse(std::istream& in, const parse_flags_t& flags, in.seekg(start_pos, std::ios::beg); scoped_array<char> buf (new char[static_cast<std::size_t>(end_pos - start_pos) + 1]); - in.read(buf.get(), end_pos - start_pos); - buf[end_pos - start_pos] = '\0'; + int len = static_cast<int>(end_pos) - static_cast<int>(start_pos); + in.read(buf.get(), len); + buf[len] = '\0'; set_text(buf.get()); } else { |