| 447 | } |
| 448 | |
| 449 | void FilesContainerW::Finish() |
| 450 | { |
| 451 | ASSERT(!m_finished, ()); |
| 452 | |
| 453 | uint64_t const curr = SaveCurrentSize(); |
| 454 | |
| 455 | FileWriter writer(m_name, FileWriter::OP_WRITE_EXISTING); |
| 456 | writer.Seek(0); |
| 457 | WriteToSink(writer, curr); |
| 458 | writer.Seek(curr); |
| 459 | |
| 460 | sort(m_info.begin(), m_info.end(), LessInfo()); |
| 461 | |
| 462 | rw::Write(writer, m_info); |
| 463 | |
| 464 | m_finished = true; |
| 465 | } |