diff options
author | Ladislav Zezula <ladislav.zezula@avg.com> | 2014-03-14 10:17:34 +0100 |
---|---|---|
committer | Ladislav Zezula <ladislav.zezula@avg.com> | 2014-03-14 10:17:34 +0100 |
commit | 568f189ea5a850a9259c8c89ba5f28a0630a2ce0 (patch) | |
tree | 80f02483aced5969b3bc4e8ed52415d0bfa0d8e9 /src/SFileOpenArchive.cpp | |
parent | ca93a8cb76edb459a94e56a85c45a29a881dfc16 (diff) |
+ Improved key detection for archives with large sector sizes
Diffstat (limited to 'src/SFileOpenArchive.cpp')
-rw-r--r-- | src/SFileOpenArchive.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp index ceb4ce1..0ca51c0 100644 --- a/src/SFileOpenArchive.cpp +++ b/src/SFileOpenArchive.cpp @@ -413,7 +413,7 @@ bool WINAPI SFileOpenArchive( if(nError != ERROR_SUCCESS) { FileStream_Close(pStream); - FreeMPQArchive(ha); + FreeArchiveHandle(ha); SetLastError(nError); ha = NULL; } @@ -509,11 +509,16 @@ bool WINAPI SFileCloseArchive(HANDLE hMpq) TMPQArchive * ha = (TMPQArchive *)hMpq; bool bResult; + // Invalidate the add file callback so it won't be called + // when saving (listfile) and (attributes) + ha->pfnAddFileCB = NULL; + ha->pvAddFileUserData = NULL; + // Flush all unsaved data to the storage bResult = SFileFlushArchive(hMpq); // Free all memory used by MPQ archive - FreeMPQArchive(ha); + FreeArchiveHandle(ha); return bResult; } |