[Boost-bugs] [Boost C++ Libraries] #10561: Bugs in dual seekable mode

Subject: [Boost-bugs] [Boost C++ Libraries] #10561: Bugs in dual seekable mode
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-09-29 14:16:45


#10561: Bugs in dual seekable mode
------------------------------+-----------------------
 Reporter: jlodos@… | Owner: turkanis
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: iostreams
  Version: Boost 1.56.0 | Severity: Problem
 Keywords: |
------------------------------+-----------------------
 Currently there are no tests for dual seekable streams. So the first thing
 to do is to add some tests. See dual_seekable_test.cpp attached.
 These tests uncover the following bugs:
 1. The functions test_seekable_in_chars and test_seekable_in_chunks in
 test/detail/verification.hpp use seekp in several places where seekg
 should be used. This has no effect when there is a single head but does
 not work when the stream is dual seekable. A new verification function
 test_dual_seekable was added and tested. See attached verification.hpp.
 2. indirect_streambuf::seek_impl does not work for dual seeking. The
 problem is that both heads are modified for both input and output
 operations. Since the modification is the same (just resetting the
 pointers) everything works when there is a single head. This is a
 duplicate of https://svn.boost.org/trac/boost/ticket/7681. Solved in the
 attached indirect_streambuf.hpp
 3. The function shared_buffer() does not consider dual_seekable stream
 buffers as shared. Solved in the attached indirect_streambuf.hpp
 4. The function init_put_area() does not consider the existing input
 position. This is a duplicate of
 https://svn.boost.org/trac/boost/ticket/8572. Solved in the attached
 indirect_streambuf.hpp
 With the attached versions of verification.hpp and indirect_streambuf.hpp
 all previously existing tests passed. I recommend adding the new tests in
 dual_seekable_test.cpp.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10561>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:17 UTC