diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-11-17 12:07:24 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-11-17 12:07:24 +0000 |
| commit | b0029fa4bfe3e92ff42aef657f92fa38d007f894 (patch) | |
| tree | eb717d06265e2bdc071eec6af41aede59e1b2815 /src/ByteArrayDiskWriter.cc | |
| parent | 644f707519f74cafc04925379be0b3f60f3939be (diff) | |
2008-11-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten ByteArrayDiskWriter::size() using seekg() and tellg().
Removed const qualifier from DiskWriter::size().
* src/AbstractDiskWriter.cc
* src/AbstractDiskWriter.h
* src/ByteArrayDiskWriter.cc
* src/ByteArrayDiskWriter.h
* src/DiskWriter.h
* test/ByteArrayDiskWriterTest.cc
Diffstat (limited to 'src/ByteArrayDiskWriter.cc')
| -rw-r--r-- | src/ByteArrayDiskWriter.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/ByteArrayDiskWriter.cc b/src/ByteArrayDiskWriter.cc index 011ed25b..dbe22cc3 100644 --- a/src/ByteArrayDiskWriter.cc +++ b/src/ByteArrayDiskWriter.cc @@ -66,9 +66,10 @@ void ByteArrayDiskWriter::openExistingFile(const std::string& filename, void ByteArrayDiskWriter::writeData(const unsigned char* data, size_t dataLength, off_t position) { - if(size() < (uint64_t)position) { - buf.seekp(size(), std::ios::beg); - for(uint64_t i = size(); i < (uint64_t)position; ++i) { + uint64_t length = size(); + if(length < (uint64_t)position) { + buf.seekp(length, std::ios::beg); + for(uint64_t i = length; i < (uint64_t)position; ++i) { buf.put('\0'); } } else { @@ -85,4 +86,11 @@ ssize_t ByteArrayDiskWriter::readData(unsigned char* data, size_t len, off_t pos return buf.gcount(); } +uint64_t ByteArrayDiskWriter::size() +{ + buf.seekg(0, std::ios::end); + buf.clear(); + return buf.tellg(); +} + } // namespace aria2 |
