diff options
author | vng <viktor.govako@gmail.com> | 2012-03-02 04:40:28 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:36:12 +0300 |
commit | 213c7e96c769cd7623aed57e3ed972ff3a160f29 (patch) | |
tree | b20bc1462564efb2add5ce93904a4d932dd7d692 /coding/zip_reader.cpp | |
parent | 12053af5bed1022887be49876905124da270d946 (diff) |
Correct order of scope gurds (and dctor calls).
Diffstat (limited to 'coding/zip_reader.cpp')
-rw-r--r-- | coding/zip_reader.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/coding/zip_reader.cpp b/coding/zip_reader.cpp index 806e4d4b37..37765e4463 100644 --- a/coding/zip_reader.cpp +++ b/coding/zip_reader.cpp @@ -95,8 +95,10 @@ void ZipFileReader::UnzipFile(string const & zipContainer, string const & fileIn static size_t const BUF_SIZE = 1024 * 50; vector<char> buf(BUF_SIZE); - FileWriter outFile(outFilePath); + // First outFile should be closed, then FileWriter::DeleteFileX is called, + // so make correct order of guards. MY_SCOPE_GUARD(outFileGuard, bind(&FileWriter::DeleteFileX, cref(outFilePath))); + FileWriter outFile(outFilePath); int pos = 0; while (true) |