diff --git a/include/osmium/io/detail/pbf_input_format.hpp b/include/osmium/io/detail/pbf_input_format.hpp index fc4b70d1..814181bb 100644 --- a/include/osmium/io/detail/pbf_input_format.hpp +++ b/include/osmium/io/detail/pbf_input_format.hpp @@ -124,6 +124,11 @@ namespace osmium { if (!osmium::io::detail::read_exactly(m_fd, buffer.data(), static_cast(buffer.size()))) { return 0; // EOF } + + if (m_offset_ptr) { + *m_offset_ptr += buffer.size(); + } + return check_size(get_size_in_network_byte_order(buffer.data())); } @@ -210,6 +215,10 @@ namespace osmium { if (!osmium::io::detail::read_exactly(m_fd, &*buffer.begin(), static_cast(size))) { throw osmium::pbf_error{"unexpected EOF"}; } + + if (m_offset_ptr) { + *m_offset_ptr += buffer.size(); + } } else { ensure_available_in_input_queue(size); buffer.append(m_input_buffer, 0, size);