diff options
author | vng <viktor.govako@gmail.com> | 2011-09-05 17:25:01 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:23:07 +0300 |
commit | a0cf3c14137bd3ed863b607015d882ae54ffdfcf (patch) | |
tree | 4583ce49a9bcb9556968fc51c5e591a14448cae2 /coding/file_container.cpp | |
parent | 4f31145f6509610e6d6cf287b82951b65756919e (diff) |
Add truncate to FileWriter routine.
Diffstat (limited to 'coding/file_container.cpp')
-rw-r--r-- | coding/file_container.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/coding/file_container.cpp b/coding/file_container.cpp index 7e5cacc994..718afb2c90 100644 --- a/coding/file_container.cpp +++ b/coding/file_container.cpp @@ -179,6 +179,7 @@ FileWriter FilesContainerW::GetWriter(Tag const & tag) FileWriter writer(m_name, FileWriter::OP_WRITE_EXISTING); writer.Seek(curr); + writer.Truncate(curr); return writer; } else @@ -224,16 +225,14 @@ void FilesContainerW::Finish() { ASSERT(!m_bFinished, ()); - { - uint64_t const curr = SaveCurrentSize(); - FileWriter writer(m_name, FileWriter::OP_WRITE_EXISTING); - writer.Seek(0); - WriteToSink(writer, curr); - } + uint64_t const curr = SaveCurrentSize(); - sort(m_info.begin(), m_info.end(), LessInfo()); + FileWriter writer(m_name, FileWriter::OP_WRITE_EXISTING); + writer.Seek(0); + WriteToSink(writer, curr); + writer.Seek(curr); - FileWriter writer(m_name, FileWriter::OP_APPEND); + sort(m_info.begin(), m_info.end(), LessInfo()); uint32_t const count = m_info.size(); WriteVarUint(writer, count); |