aboutsummaryrefslogtreecommitdiff
path: root/src/SFileOpenArchive.cpp
diff options
context:
space:
mode:
authorLadislav Zezula <ladislav.zezula@avg.com>2014-03-14 10:17:34 +0100
committerLadislav Zezula <ladislav.zezula@avg.com>2014-03-14 10:17:34 +0100
commit568f189ea5a850a9259c8c89ba5f28a0630a2ce0 (patch)
tree80f02483aced5969b3bc4e8ed52415d0bfa0d8e9 /src/SFileOpenArchive.cpp
parentca93a8cb76edb459a94e56a85c45a29a881dfc16 (diff)
+ Improved key detection for archives with large sector sizes
Diffstat (limited to 'src/SFileOpenArchive.cpp')
-rw-r--r--src/SFileOpenArchive.cpp9
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;
}