diff options
author | Igor Pavlov <ipavlov@users.sourceforge.net> | 2018-01-12 00:16:32 +0300 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2018-01-12 00:16:32 +0300 |
commit | da28077952faf9e716ed7987b842d31617a10125 (patch) | |
tree | 5903be6aa5f1405d54028cec42432c46df818af5 /CPP/7zip/UI/Agent | |
parent | b5dc853b2496447f0a54b3b25cb2659b575c56ef (diff) |
18.0018.00
Diffstat (limited to 'CPP/7zip/UI/Agent')
-rw-r--r-- | CPP/7zip/UI/Agent/Agent.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/CPP/7zip/UI/Agent/Agent.cpp b/CPP/7zip/UI/Agent/Agent.cpp index dbcd6fff..e52e47d0 100644 --- a/CPP/7zip/UI/Agent/Agent.cpp +++ b/CPP/7zip/UI/Agent/Agent.cpp @@ -1507,11 +1507,18 @@ STDMETHODIMP CAgentFolder::Extract(const UInt32 *indices, #endif - HRESULT result = _agentSpec->GetArchive()->Extract(&realIndices.Front(), - realIndices.Size(), testMode, extractCallback); - if (result == S_OK) - result = extractCallbackSpec->SetDirsTimes(); - return result; + { + CArchiveExtractCallback_Closer ecsCloser(extractCallbackSpec); + + HRESULT res = _agentSpec->GetArchive()->Extract(&realIndices.Front(), + realIndices.Size(), testMode, extractCallback); + + HRESULT res2 = ecsCloser.Close(); + if (res == S_OK) + res = res2; + return res; + } + COM_TRY_END } |