diff options
author | Ladislav Zezula <zezula@volny.cz> | 2025-07-03 09:27:16 +0200 |
---|---|---|
committer | Ladislav Zezula <zezula@volny.cz> | 2025-07-03 09:27:16 +0200 |
commit | 486a7dd29f3bdf884d4be5588d9171daa5da1bae (patch) | |
tree | 95d9d099a84a3587412eecffd2485da99820916b /src | |
parent | b41cda40f9c3fbdb802cf63e739425cd805eecaa (diff) |
Replaced GetLastError with SErrGetLastError
Diffstat (limited to 'src')
-rw-r--r-- | src/FileStream.cpp | 73 | ||||
-rw-r--r-- | src/SBaseCommon.cpp | 52 | ||||
-rw-r--r-- | src/SBaseDumpData.cpp | 4 | ||||
-rw-r--r-- | src/SBaseFileTable.cpp | 26 | ||||
-rw-r--r-- | src/SBaseSubTypes.cpp | 24 | ||||
-rw-r--r-- | src/SCompression.cpp | 26 | ||||
-rw-r--r-- | src/SFileAddFile.cpp | 60 | ||||
-rw-r--r-- | src/SFileAttributes.cpp | 12 | ||||
-rw-r--r-- | src/SFileCompactArchive.cpp | 30 | ||||
-rw-r--r-- | src/SFileCreateArchive.cpp | 12 | ||||
-rw-r--r-- | src/SFileExtractFile.cpp | 10 | ||||
-rw-r--r-- | src/SFileFindFile.cpp | 6 | ||||
-rw-r--r-- | src/SFileGetFileInfo.cpp | 10 | ||||
-rw-r--r-- | src/SFileListFile.cpp | 16 | ||||
-rw-r--r-- | src/SFileOpenArchive.cpp | 18 | ||||
-rw-r--r-- | src/SFileOpenFileEx.cpp | 10 | ||||
-rw-r--r-- | src/SFilePatchArchives.cpp | 4 | ||||
-rw-r--r-- | src/SFileReadFile.cpp | 24 | ||||
-rw-r--r-- | src/SFileVerify.cpp | 14 | ||||
-rw-r--r-- | src/SMemUtf8.cpp | 29 | ||||
-rw-r--r-- | src/StormCommon.h | 2 | ||||
-rw-r--r-- | src/StormLib.h | 18 | ||||
-rw-r--r-- | src/lzma/C/Threads.c | 2 |
23 files changed, 244 insertions, 238 deletions
diff --git a/src/FileStream.cpp b/src/FileStream.cpp index 39db0a0..b5a0a6d 100644 --- a/src/FileStream.cpp +++ b/src/FileStream.cpp @@ -33,25 +33,6 @@ //-----------------------------------------------------------------------------
// Local functions - platform-specific functions
-#ifndef STORMLIB_WINDOWS
-
-#ifndef STORMLIB_WIIU
-static thread_local DWORD dwLastError = ERROR_SUCCESS;
-#else
-static DWORD dwLastError = ERROR_SUCCESS;
-#endif
-
-DWORD GetLastError()
-{
- return dwLastError;
-}
-
-void SetLastError(DWORD dwErrCode)
-{
- dwLastError = dwErrCode;
-}
-#endif
-
static DWORD StringToInt(const char * szString)
{
DWORD dwValue = 0;
@@ -262,7 +243,7 @@ static bool BaseFile_Read( // If the number of bytes read doesn't match to required amount, return false
pStream->Base.File.FilePos = ByteOffset + dwBytesRead;
if(dwBytesRead != dwBytesToRead)
- SetLastError(ERROR_HANDLE_EOF);
+ SErrSetLastError(ERROR_HANDLE_EOF);
return (dwBytesRead == dwBytesToRead);
}
@@ -334,7 +315,7 @@ static bool BaseFile_Write(TFileStream * pStream, ULONGLONG * pByteOffset, const pStream->Base.File.FileSize = pStream->Base.File.FilePos;
if(dwBytesWritten != dwBytesToWrite)
- SetLastError(ERROR_DISK_FULL);
+ SErrSetLastError(ERROR_DISK_FULL);
return (dwBytesWritten == dwBytesToWrite);
}
@@ -353,7 +334,7 @@ static bool BaseFile_Resize(TFileStream * pStream, ULONGLONG NewFileSize) // Set the position at the new file size
dwNewPos = SetFilePointer(pStream->Base.File.hFile, (LONG)NewFileSize, &FileSizeHi, FILE_BEGIN);
- if(dwNewPos == INVALID_SET_FILE_POINTER && GetLastError() != ERROR_SUCCESS)
+ if(dwNewPos == INVALID_SET_FILE_POINTER && SErrGetLastError() != ERROR_SUCCESS)
return false;
// Set the current file pointer as the end of the file
@@ -748,7 +729,7 @@ static bool BaseHttp_Open(TFileStream * pStream, const TCHAR * szFileName, DWORD if(_tcscmp(StatusCode, _T("200")))
{
InternetCloseHandle(hRequest);
- SetLastError(ERROR_FILE_NOT_FOUND);
+ SErrSetLastError(ERROR_FILE_NOT_FOUND);
return false;
}
}
@@ -793,7 +774,7 @@ static bool BaseHttp_Open(TFileStream * pStream, const TCHAR * szFileName, DWORD #else
// Not supported
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
pStream = pStream;
return false;
@@ -861,7 +842,7 @@ static bool BaseHttp_Read( // If the number of bytes read doesn't match the required amount, return false
if(dwTotalBytesRead != dwBytesToRead)
- SetLastError(ERROR_HANDLE_EOF);
+ SErrSetLastError(ERROR_HANDLE_EOF);
return (dwTotalBytesRead == dwBytesToRead);
#else
@@ -871,7 +852,7 @@ static bool BaseHttp_Read( pByteOffset = pByteOffset;
pvBuffer = pvBuffer;
dwBytesToRead = dwBytesToRead;
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
return false;
#endif
@@ -945,7 +926,7 @@ static bool BlockStream_Read( EndOffset = ByteOffset + dwBytesToRead;
if(EndOffset > pStream->StreamSize)
{
- SetLastError(ERROR_HANDLE_EOF);
+ SErrSetLastError(ERROR_HANDLE_EOF);
return false;
}
@@ -962,7 +943,7 @@ static bool BlockStream_Read( TransferBuffer = BlockBuffer = STORM_ALLOC(BYTE, (BlockCount * BlockSize));
if(TransferBuffer == NULL)
{
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return false;
}
@@ -1040,7 +1021,7 @@ static bool BlockStream_Read( else
{
// If the block read failed, set the last error
- SetLastError(ERROR_FILE_INCOMPLETE);
+ SErrSetLastError(ERROR_FILE_INCOMPLETE);
}
// Call the callback to indicate we are done
@@ -1117,7 +1098,7 @@ static TFileStream * AllocateFileStream( // Don't allow another master file in the string
if(_tcschr(szNextFile + 1, _T('*')) != NULL)
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return NULL;
}
@@ -1456,7 +1437,7 @@ static TFileStream * FlatStream_Open(const TCHAR * szFileName, DWORD dwStreamFla if(!FlatStream_CreateMirror(pStream))
{
FileStream_Close(pStream);
- SetLastError(ERROR_FILE_NOT_FOUND);
+ SErrSetLastError(ERROR_FILE_NOT_FOUND);
return NULL;
}
}
@@ -1875,7 +1856,7 @@ static TFileStream * PartStream_Open(const TCHAR * szFileName, DWORD dwStreamFla if(!PartStream_CreateMirror(pStream))
{
FileStream_Close(pStream);
- SetLastError(ERROR_FILE_NOT_FOUND);
+ SErrSetLastError(ERROR_FILE_NOT_FOUND);
return NULL;
}
}
@@ -1892,7 +1873,7 @@ static TFileStream * PartStream_Open(const TCHAR * szFileName, DWORD dwStreamFla if(!PartStream_LoadBitmap(pStream))
{
FileStream_Close(pStream);
- SetLastError(ERROR_BAD_FORMAT);
+ SErrSetLastError(ERROR_BAD_FORMAT);
return NULL;
}
}
@@ -2212,7 +2193,7 @@ static TFileStream * MpqeStream_Open(const TCHAR * szFileName, DWORD dwStreamFla // Cleanup the stream and return
FileStream_Close(pStream);
- SetLastError(ERROR_UNKNOWN_FILE_KEY);
+ SErrSetLastError(ERROR_UNKNOWN_FILE_KEY);
return NULL;
}
@@ -2358,7 +2339,7 @@ static TFileStream * Block4Stream_Open(const TCHAR * szFileName, DWORD dwStreamF NewBaseArray = STORM_ALLOC(TBaseProviderData, dwBaseFiles + 1);
if(NewBaseArray == NULL)
{
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return NULL;
}
@@ -2413,7 +2394,7 @@ static TFileStream * Block4Stream_Open(const TCHAR * szFileName, DWORD dwStreamF if(dwBaseFiles == 0)
{
FileStream_Close(pStream);
- SetLastError(ERROR_FILE_NOT_FOUND);
+ SErrSetLastError(ERROR_FILE_NOT_FOUND);
pStream = NULL;
}
@@ -2449,7 +2430,7 @@ TFileStream * FileStream_CreateFile( // We only support creation of flat, local file
if((dwStreamFlags & (STREAM_PROVIDERS_MASK)) != (STREAM_PROVIDER_FLAT | BASE_PROVIDER_FILE))
{
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
return NULL;
}
@@ -2523,7 +2504,7 @@ TFileStream * FileStream_OpenFile( return Block4Stream_Open(szFileName, dwStreamFlags);
default:
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return NULL;
}
}
@@ -2635,7 +2616,7 @@ bool FileStream_SetCallback(TFileStream * pStream, SFILE_DOWNLOAD_CALLBACK pfnCa if(pStream->BlockRead == NULL)
{
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
return false;
}
@@ -2733,7 +2714,7 @@ bool FileStream_GetBitmap(TFileStream * pStream, void * pvBitmap, DWORD cbBitmap // Set last error value and return
if(bResult == false)
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ SErrSetLastError(ERROR_INSUFFICIENT_BUFFER);
return bResult;
}
@@ -2753,8 +2734,8 @@ bool FileStream_GetBitmap(TFileStream * pStream, void * pvBitmap, DWORD cbBitmap *
* \returns
* - If the function reads the required amount of bytes, it returns true.
- * - If the function reads less than required bytes, it returns false and GetLastError() returns ERROR_HANDLE_EOF
- * - If the function fails, it reads false and GetLastError() returns an error code different from ERROR_HANDLE_EOF
+ * - If the function reads less than required bytes, it returns false and SErrGetLastError() returns ERROR_HANDLE_EOF
+ * - If the function fails, it reads false and SErrGetLastError() returns an error code different from ERROR_HANDLE_EOF
*/
bool FileStream_Read(TFileStream * pStream, ULONGLONG * pByteOffset, void * pvBuffer, DWORD dwBytesToRead)
{
@@ -2778,7 +2759,7 @@ bool FileStream_Write(TFileStream * pStream, ULONGLONG * pByteOffset, const void {
if(pStream->dwFlags & STREAM_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
@@ -2808,7 +2789,7 @@ bool FileStream_SetSize(TFileStream * pStream, ULONGLONG NewFileSize) {
if(pStream->dwFlags & STREAM_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
@@ -2868,14 +2849,14 @@ bool FileStream_Replace(TFileStream * pStream, TFileStream * pNewStream) // Only supported on flat files
if((pStream->dwFlags & STREAM_PROVIDERS_MASK) != (STREAM_PROVIDER_FLAT | BASE_PROVIDER_FILE))
{
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
return false;
}
// Not supported on read-only streams
if(pStream->dwFlags & STREAM_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp index 0d9598a..16caf4f 100644 --- a/src/SBaseCommon.cpp +++ b/src/SBaseCommon.cpp @@ -736,7 +736,7 @@ TMPQFile * IsValidFileHandle(HANDLE hFile) // Hash table and block table manipulation
// Attempts to search a free hash entry, or an entry whose names and locale matches
-TMPQHash * FindFreeHashEntry(TMPQArchive * ha, DWORD dwStartIndex, DWORD dwName1, DWORD dwName2, LCID lcFileLocale)
+TMPQHash * FindFreeHashEntry(TMPQArchive * ha, DWORD dwStartIndex, DWORD dwHashCheck1, DWORD dwHashCheck2, LCID lcFileLocale)
{
TMPQHash * pDeletedEntry = NULL; // If a deleted entry was found in the continuous hash range
TMPQHash * pFreeEntry = NULL; // If a free entry was found in the continuous hash range
@@ -757,7 +757,7 @@ TMPQHash * FindFreeHashEntry(TMPQArchive * ha, DWORD dwStartIndex, DWORD dwName1 TMPQHash * pHash = ha->pHashTable + dwIndex;
// If we found a matching entry, return that one
- if(pHash->dwName1 == dwName1 && pHash->dwName2 == dwName2 && pHash->Locale == Locale)
+ if(pHash->dwHashCheck1 == dwHashCheck1 && pHash->dwHashCheck2 == dwHashCheck2 && pHash->Locale == Locale)
return pHash;
// If we found a deleted entry, remember it but keep searching
@@ -788,8 +788,8 @@ TMPQHash * GetFirstHashEntry(TMPQArchive * ha, const char * szFileName) {
DWORD dwHashIndexMask = HASH_INDEX_MASK(ha);
DWORD dwStartIndex = ha->pfnHashString(szFileName, MPQ_HASH_TABLE_INDEX);
- DWORD dwName1 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_A);
- DWORD dwName2 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_B);
+ DWORD dwHashCheck1 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_A);
+ DWORD dwHashCheck2 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_B);
DWORD dwIndex;
// Set the initial index
@@ -801,7 +801,7 @@ TMPQHash * GetFirstHashEntry(TMPQArchive * ha, const char * szFileName) TMPQHash * pHash = ha->pHashTable + dwIndex;
// If the entry matches, we found it.
- if(pHash->dwName1 == dwName1 && pHash->dwName2 == dwName2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
+ if(pHash->dwHashCheck1 == dwHashCheck1 && pHash->dwHashCheck2 == dwHashCheck2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
return pHash;
// If that hash entry is a free entry, it means we haven't found the file
@@ -820,8 +820,8 @@ TMPQHash * GetNextHashEntry(TMPQArchive * ha, TMPQHash * pFirstHash, TMPQHash * {
DWORD dwHashIndexMask = HASH_INDEX_MASK(ha);
DWORD dwStartIndex = (DWORD)(pFirstHash - ha->pHashTable);
- DWORD dwName1 = pHash->dwName1;
- DWORD dwName2 = pHash->dwName2;
+ DWORD dwHashCheck1 = pHash->dwHashCheck1;
+ DWORD dwHashCheck2 = pHash->dwHashCheck2;
DWORD dwIndex = (DWORD)(pHash - ha->pHashTable);
// Now go for any next entry that follows the pHash,
@@ -836,7 +836,7 @@ TMPQHash * GetNextHashEntry(TMPQArchive * ha, TMPQHash * pFirstHash, TMPQHash * pHash = ha->pHashTable + dwIndex;
// If the entry matches, we found it.
- if(pHash->dwName1 == dwName1 && pHash->dwName2 == dwName2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
+ if(pHash->dwHashCheck1 == dwHashCheck1 && pHash->dwHashCheck2 == dwHashCheck2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
return pHash;
// If that hash entry is a free entry, it means we haven't found the file
@@ -853,19 +853,19 @@ TMPQHash * AllocateHashEntry( {
TMPQHash * pHash;
DWORD dwStartIndex = ha->pfnHashString(pFileEntry->szFileName, MPQ_HASH_TABLE_INDEX);
- DWORD dwName1 = ha->pfnHashString(pFileEntry->szFileName, MPQ_HASH_NAME_A);
- DWORD dwName2 = ha->pfnHashString(pFileEntry->szFileName, MPQ_HASH_NAME_B);
+ DWORD dwHashCheck1 = ha->pfnHashString(pFileEntry->szFileName, MPQ_HASH_NAME_A);
+ DWORD dwHashCheck2 = ha->pfnHashString(pFileEntry->szFileName, MPQ_HASH_NAME_B);
// Attempt to find a free hash entry
- pHash = FindFreeHashEntry(ha, dwStartIndex, dwName1, dwName2, lcFileLocale);
+ pHash = FindFreeHashEntry(ha, dwStartIndex, dwHashCheck1, dwHashCheck2, lcFileLocale);
if(pHash != NULL)
{
// Fill the free hash entry
- pHash->dwName1 = dwName1;
- pHash->dwName2 = dwName2;
+ pHash->dwHashCheck1 = dwHashCheck1;
+ pHash->dwHashCheck2 = dwHashCheck2;
pHash->Locale = SFILE_LOCALE(lcFileLocale);
pHash->Platform = SFILE_PLATFORM(lcFileLocale);
- pHash->Reserved = 0;
+ pHash->Flags = 0;
pHash->dwBlockIndex = (DWORD)(pFileEntry - ha->pFileTable);
}
@@ -965,7 +965,7 @@ TMPQFile * CreateWritableHandle(TMPQArchive * ha, DWORD dwFileSize) (ha->dwFileTableSize * sizeof(TMPQBlock));
if((TempPos >> 32) != 0)
{
- SetLastError(ERROR_DISK_FULL);
+ SErrSetLastError(ERROR_DISK_FULL);
return NULL;
}
}
@@ -974,7 +974,7 @@ TMPQFile * CreateWritableHandle(TMPQArchive * ha, DWORD dwFileSize) hf = CreateFileHandle(ha, NULL);
if(hf == NULL)
{
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
+ SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY);
return NULL;
}
@@ -1063,7 +1063,7 @@ void * LoadMpqTable( }
else
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
if(dwErrCode == ERROR_SUCCESS)
@@ -1083,7 +1083,7 @@ void * LoadMpqTable( int cbInBuffer = (int)dwCompressedSize;
if(!SCompDecompress2(pbMpqTable, &cbOutBuffer, pbCompressed, cbInBuffer))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Make sure that the table is properly byte-swapped
@@ -1179,7 +1179,7 @@ __AllocateAndLoadPatchInfo: if(!FileStream_Read(ha->pStream, &hf->RawFilePos, pPatchInfo, dwLength))
{
STORM_FREE(pPatchInfo);
- return GetLastError();
+ return SErrGetLastError();
}
// Perform necessary swapping
@@ -1289,7 +1289,7 @@ DWORD AllocateSectorOffsets(TMPQFile * hf, bool bLoadFromFile) // Free the sector offsets
STORM_FREE(hf->SectorOffsets);
hf->SectorOffsets = NULL;
- return GetLastError();
+ return SErrGetLastError();
}
// Swap the sector positions
@@ -1479,7 +1479,7 @@ DWORD WritePatchInfo(TMPQFile * hf) BSWAP_ARRAY32_UNSIGNED(pPatchInfo, 3 * sizeof(DWORD));
if(!FileStream_Write(ha->pStream, &hf->RawFilePos, pPatchInfo, sizeof(TPatchInfo)))
- return GetLastError();
+ return SErrGetLastError();
return ERROR_SUCCESS;
}
@@ -1508,7 +1508,7 @@ DWORD WriteSectorOffsets(TMPQFile * hf) // Write sector offsets to the archive
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->SectorOffsets, dwSectorOffsLen))
- return GetLastError();
+ return SErrGetLastError();
// Not necessary, as the sector checksums
// are going to be freed when this is done.
@@ -1561,7 +1561,7 @@ DWORD WriteSectorChecksums(TMPQFile * hf) if(hf->pPatchInfo != NULL)
RawFilePos += hf->pPatchInfo->dwLength;
if(!FileStream_Write(ha->pStream, &RawFilePos, pbCompressed, dwCompressedSize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Not necessary, as the sector checksums
// are going to be freed when this is done.
@@ -1612,7 +1612,7 @@ DWORD WriteMemDataMD5( // Write the array od MD5's to the file
RawDataOffs += dwRawDataSize;
if(!FileStream_Write(pStream, &RawDataOffs, md5_array, dwMd5ArraySize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Give the caller the size of the MD5 array
if(pcbTotalSize != NULL)
@@ -1660,7 +1660,7 @@ DWORD WriteMpqDataMD5( // Read the chunk
if(!FileStream_Read(pStream, &RawDataOffs, pbFileChunk, dwToRead))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -1677,7 +1677,7 @@ DWORD WriteMpqDataMD5( if(dwErrCode == ERROR_SUCCESS)
{
if(!FileStream_Write(pStream, NULL, md5_array, dwMd5ArraySize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Free buffers and exit
diff --git a/src/SBaseDumpData.cpp b/src/SBaseDumpData.cpp index 16313dd..f52b927 100644 --- a/src/SBaseDumpData.cpp +++ b/src/SBaseDumpData.cpp @@ -52,8 +52,8 @@ void DumpHashTable(TMPQHash * pHashTable, DWORD dwHashTableSize) for(i = 0; i < dwHashTableSize; i++) { printf("[%08x] %08X %08X %04X %02X %08X\n", i, - pHashTable[i].dwName1, - pHashTable[i].dwName2, + pHashTable[i].dwHashCheck1, + pHashTable[i].dwHashCheck2, pHashTable[i].Locale, pHashTable[i].Platform, pHashTable[i].dwBlockIndex); diff --git a/src/SBaseFileTable.cpp b/src/SBaseFileTable.cpp index e4ce6f6..e854ac0 100644 --- a/src/SBaseFileTable.cpp +++ b/src/SBaseFileTable.cpp @@ -1031,7 +1031,7 @@ static DWORD BuildFileTableFromBlockTable( pHash->dwBlockIndex = dwNewIndex;
// Dump the relocation entry
-// printf("Relocating hash entry %08X-%08X: %08X -> %08X\n", pHash->dwName1, pHash->dwName2, dwBlockIndex, dwNewIndex);
+// printf("Relocating hash entry %08X-%08X: %08X -> %08X\n", pHash->dwHashCheck1, pHash->dwHashCheck2, dwBlockIndex, dwNewIndex);
}
// Get the pointer to the file entry and the block entry
@@ -1293,7 +1293,7 @@ static DWORD SaveMpqTable( BSWAP_ARRAY32_UNSIGNED(pMpqTable, Size);
FileOffset = ha->MpqPos + ByteOffset;
if(!FileStream_Write(ha->pStream, &FileOffset, pMpqTable, (DWORD)Size))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Free the compressed table, if any
if(pCompressed != NULL)
@@ -1364,7 +1364,7 @@ static DWORD SaveExtTable( if(FileStream_Write(ha->pStream, &FileOffset, pExtTable, dwTableSize))
cbTotalSize += dwTableSize;
else
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// We have to write raw data MD5
if(dwErrCode == ERROR_SUCCESS && ha->pHeader->dwRawChunkSize != 0)
@@ -2224,11 +2224,11 @@ DWORD RenameFileEntry( lcFileLocale = SFILE_MAKE_LCID(pHashEntry->Locale, pHashEntry->Platform);
// Mark the hash table entry as deleted
- pHashEntry->dwName1 = 0xFFFFFFFF;
- pHashEntry->dwName2 = 0xFFFFFFFF;
+ pHashEntry->dwHashCheck1 = 0xFFFFFFFF;
+ pHashEntry->dwHashCheck2 = 0xFFFFFFFF;
pHashEntry->Locale = 0xFFFF;
pHashEntry->Platform = 0xFF;
- pHashEntry->Reserved = 0xFF;
+ pHashEntry->Flags = 0xFF;
pHashEntry->dwBlockIndex = HASH_ENTRY_DELETED;
}
@@ -2265,11 +2265,11 @@ DWORD DeleteFileEntry(TMPQArchive * ha, TMPQFile * hf) return ERROR_NOT_SUPPORTED;
// Mark the hash table entry as deleted
- pHashEntry->dwName1 = 0xFFFFFFFF;
- pHashEntry->dwName2 = 0xFFFFFFFF;
+ pHashEntry->dwHashCheck1 = 0xFFFFFFFF;
+ pHashEntry->dwHashCheck2 = 0xFFFFFFFF;
pHashEntry->Locale = 0xFFFF;
pHashEntry->Platform = 0xFF;
- pHashEntry->Reserved = 0xFF;
+ pHashEntry->Flags = 0xFF;
pHashEntry->dwBlockIndex = HASH_ENTRY_DELETED;
}
@@ -2618,7 +2618,7 @@ static DWORD BuildFileTable_Classic(TMPQArchive * ha) // Load the hi-block table. It is not encrypted, nor compressed
ByteOffset = ha->MpqPos + pHeader->HiBlockTablePos64;
if(!FileStream_Read(ha->pStream, &ByteOffset, pHiBlockTable, dwTableSize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Now merge the hi-block table to the file table
if(dwErrCode == ERROR_SUCCESS)
@@ -3141,7 +3141,7 @@ DWORD SaveMPQTables(TMPQArchive * ha) BSWAP_ARRAY16_UNSIGNED(pHiBlockTable, HiBlockTableSize64);
if(!FileStream_Write(ha->pStream, &ByteOffset, pHiBlockTable, (DWORD)HiBlockTableSize64))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
TablePos += HiBlockTableSize64;
}
@@ -3151,7 +3151,7 @@ DWORD SaveMPQTables(TMPQArchive * ha) ULONGLONG FileSize = ha->MpqPos + TablePos;
if(!FileStream_SetSize(ha->pStream, FileSize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Write the MPQ header
@@ -3174,7 +3174,7 @@ DWORD SaveMPQTables(TMPQArchive * ha) BSWAP_TMPQHEADER(&SaveMpqHeader, MPQ_FORMAT_VERSION_3);
BSWAP_TMPQHEADER(&SaveMpqHeader, MPQ_FORMAT_VERSION_4);
if(!FileStream_Write(ha->pStream, &ha->MpqPos, &SaveMpqHeader, pHeader->dwHeaderSize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Clear the changed flag
diff --git a/src/SBaseSubTypes.cpp b/src/SBaseSubTypes.cpp index 1ae9aae..10410dc 100644 --- a/src/SBaseSubTypes.cpp +++ b/src/SBaseSubTypes.cpp @@ -65,10 +65,10 @@ typedef struct _TSQPHash DWORD dwBlockIndex; // The hash of the file path, using method A. - DWORD dwName1; + DWORD dwHashCheck1; // The hash of the file path, using method B. - DWORD dwName2; + DWORD dwHashCheck2; } TSQPHash; @@ -213,12 +213,12 @@ TMPQHash * LoadSqpHashTable(TMPQArchive * ha) dwErrCode = ERROR_FILE_CORRUPT; // Copy the entry to the MPQ hash entry - pMpqHash->dwName1 = TempEntry.dwName1; - pMpqHash->dwName2 = TempEntry.dwName2; + pMpqHash->dwHashCheck1 = TempEntry.dwHashCheck1; + pMpqHash->dwHashCheck2 = TempEntry.dwHashCheck2; pMpqHash->dwBlockIndex = MPQ_BLOCK_INDEX(&TempEntry); pMpqHash->Locale = 0; pMpqHash->Platform = 0; - pMpqHash->Reserved = 0; + pMpqHash->Flags = 0; } } @@ -320,13 +320,13 @@ typedef struct _TMPKHeader typedef struct _TMPKHash { // The hash of the file path, using method A. - DWORD dwName1; + DWORD dwHashCheck1; // The hash of the file path, using method B. - DWORD dwName2; + DWORD dwHashCheck2; // The hash of the file path, using method C. - DWORD dwName3; + DWORD dwHashCheck3; // If the hash table entry is valid, this is the index into the block table of the file. // Otherwise, one of the following two values: @@ -590,16 +590,16 @@ TMPQHash * LoadMpkHashTable(TMPQArchive * ha) { // Finds the free hash entry in the hash table // We don't expect any errors here, because we are putting files to empty hash table - pHash = FindFreeHashEntry(pHashTable, pHeader->dwHashTableSize, pMpkHash[i].dwName1); + pHash = FindFreeHashEntry(pHashTable, pHeader->dwHashTableSize, pMpkHash[i].dwHashCheck1); assert(pHash->dwBlockIndex == HASH_ENTRY_FREE); // Copy the MPK hash entry to the hash table pHash->dwBlockIndex = pMpkHash[i].dwBlockIndex; pHash->Locale = 0; pHash->Platform = 0; - pHash->Reserved = 0; - pHash->dwName1 = pMpkHash[i].dwName2; - pHash->dwName2 = pMpkHash[i].dwName3; + pHash->Flags = 0; + pHash->dwHashCheck1 = pMpkHash[i].dwHashCheck2; + pHash->dwHashCheck2 = pMpkHash[i].dwHashCheck3; } } diff --git a/src/SCompression.cpp b/src/SCompression.cpp index 316a7fb..d585e82 100644 --- a/src/SCompression.cpp +++ b/src/SCompression.cpp @@ -678,7 +678,7 @@ int WINAPI SCompImplode(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffe // Check for valid parameters if(!pcbOutBuffer || *pcbOutBuffer < cbInBuffer || !pvOutBuffer || !pvInBuffer) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return 0; } @@ -710,7 +710,7 @@ int WINAPI SCompExplode(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffe // Check for valid parameters if(!pcbOutBuffer || *pcbOutBuffer < cbInBuffer || !pvOutBuffer || !pvInBuffer) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return 0; } @@ -729,7 +729,7 @@ int WINAPI SCompExplode(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuffe // Perform decompression if(!Decompress_PKLIB(pvOutBuffer, &cbOutBuffer, pvInBuffer, cbInBuffer)) { - SetLastError(ERROR_FILE_CORRUPT); + SErrSetLastError(ERROR_FILE_CORRUPT); return 0; } @@ -781,7 +781,7 @@ int WINAPI SCompCompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuff // Check for valid parameters if(!pcbOutBuffer || *pcbOutBuffer < cbInBuffer || !pvOutBuffer || !pvInBuffer) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return 0; } @@ -817,7 +817,7 @@ int WINAPI SCompCompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuff // If at least one of the compressions remaing unknown, return an error if(uCompressionMask != 0) { - SetLastError(ERROR_NOT_SUPPORTED); + SErrSetLastError(ERROR_NOT_SUPPORTED); return 0; } } @@ -831,7 +831,7 @@ int WINAPI SCompCompress(void * pvOutBuffer, int * pcbOutBuffer, void * pvInBuff pbWorkBuffer = STORM_ALLOC(unsigned char, *pcbOutBuffer); if(pbWorkBuffer == NULL) { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); + SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY); return 0; } } @@ -980,7 +980,7 @@ static int SCompDecompressInternal( // If at least one of the compressions remaing unknown, return an error if(nCompressCount == 0 || uCompressionMask2 != 0) { - SetLastError(ERROR_NOT_SUPPORTED); + SErrSetLastError(ERROR_NOT_SUPPORTED); return 0; } @@ -990,7 +990,7 @@ static int SCompDecompressInternal( pbWorkBuffer = STORM_ALLOC(unsigned char, cbOutBuffer); if(pbWorkBuffer == NULL) { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); + SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY); return 0; } } @@ -1013,7 +1013,7 @@ static int SCompDecompressInternal( nResult = table[i].Decompress(pbOutput, &cbOutBuffer, pbInput, cbInLength); if(nResult == 0 || cbOutBuffer == 0) { - SetLastError(ERROR_FILE_CORRUPT); + SErrSetLastError(ERROR_FILE_CORRUPT); nResult = 0; break; } @@ -1051,7 +1051,7 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB // Verify buffer sizes if(*pcbOutBuffer < cbInBuffer || cbInBuffer < 1) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return 0; } @@ -1117,7 +1117,7 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB break; default: - SetLastError(ERROR_FILE_CORRUPT); + SErrSetLastError(ERROR_FILE_CORRUPT); return 0; } @@ -1127,7 +1127,7 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB pbWorkBuffer = STORM_ALLOC(unsigned char, *pcbOutBuffer); if(pbWorkBuffer == NULL) { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); + SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY); return 0; } } @@ -1151,7 +1151,7 @@ int WINAPI SCompDecompress2(void * pvOutBuffer, int * pcbOutBuffer, void * pvInB STORM_FREE(pbWorkBuffer); if(nResult == 0) - SetLastError(ERROR_FILE_CORRUPT); + SErrSetLastError(ERROR_FILE_CORRUPT); return nResult; } diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index f98a185..e04e876 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -257,7 +257,7 @@ static DWORD WriteDataToMpqFile( // Write the file sector
if(!FileStream_Write(ha->pStream, &ByteOffset, pbToWrite, dwBytesInSector))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -343,7 +343,7 @@ static DWORD RecryptFileData( // Write the recrypted array back
if(!FileStream_Write(ha->pStream, &hf->RawFilePos, SectorOffsetsCopy, dwSectorOffsLen))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
STORM_FREE(SectorOffsetsCopy);
}
@@ -373,7 +373,7 @@ static DWORD RecryptFileData( // Read the file sector
if(!FileStream_Read(ha->pStream, &RawFilePos, hf->pbFileSector, dwRawDataInSector))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -388,7 +388,7 @@ static DWORD RecryptFileData( // Write the sector back
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->pbFileSector, dwRawDataInSector))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -443,7 +443,7 @@ DWORD SFileAddFile_Init( // Allocate the TMPQFile entry for newly added file
hf = CreateWritableHandle(ha, dwFileSize);
if(hf == NULL)
- return GetLastError();
+ return SErrGetLastError();
// Allocate file entry in the MPQ
if(dwErrCode == ERROR_SUCCESS)
@@ -477,7 +477,7 @@ DWORD SFileAddFile_Init( hf->pHashEntry = ha->pHashTable + dwHashIndex;
hf->pHashEntry->Locale = SFILE_LOCALE(lcFileLocale);
hf->pHashEntry->Platform = SFILE_PLATFORM(lcFileLocale);
- hf->pHashEntry->Reserved = 0;
+ hf->pHashEntry->Flags = 0;
}
// Prepare the file key
@@ -630,7 +630,7 @@ DWORD SFileAddFile_Write(TMPQFile * hf, const void * pvData, DWORD dwSize, DWORD if(hf->pPatchInfo != NULL)
{
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->pPatchInfo, hf->pPatchInfo->dwLength))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
pFileEntry->dwCmpSize += hf->pPatchInfo->dwLength;
RawFilePos += hf->pPatchInfo->dwLength;
@@ -642,7 +642,7 @@ DWORD SFileAddFile_Write(TMPQFile * hf, const void * pvData, DWORD dwSize, DWORD if(hf->SectorOffsets != NULL)
{
if(!FileStream_Write(ha->pStream, &RawFilePos, hf->SectorOffsets, hf->SectorOffsets[0]))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
pFileEntry->dwCmpSize += hf->SectorOffsets[0];
RawFilePos += hf->SectorOffsets[0];
@@ -819,7 +819,7 @@ bool WINAPI SFileCreateFile( // Deal with the errors
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -865,7 +865,7 @@ bool WINAPI SFileWriteFile( // Deal with errors
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -886,7 +886,7 @@ bool WINAPI SFileFinishFile(HANDLE hFile) // Deal with errors
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -918,7 +918,7 @@ bool WINAPI SFileAddFileEx( // Check parameters
if(hMpq == NULL || szFileName == NULL || *szFileName == 0 || (ha = IsValidMpqHandle(hMpq)) == NULL)
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
@@ -974,7 +974,7 @@ bool WINAPI SFileAddFileEx( // Initiate adding file to the MPQ
if(!SFileCreateFile(hMpq, szArchivedName, FileTime, (DWORD)FileSize, g_lcFileLocale, dwFlags, &hMpqFile))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Write the file data to the MPQ
@@ -988,7 +988,7 @@ bool WINAPI SFileAddFileEx( // Read data from the local file
if(!FileStream_Read(pStream, NULL, pbFileData, dwBytesToRead))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -1014,7 +1014,7 @@ bool WINAPI SFileAddFileEx( // Add the file sectors to the MPQ
if(!SFileWriteFile(hMpqFile, pbFileData, dwBytesToRead, dwCompression))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -1027,7 +1027,7 @@ bool WINAPI SFileAddFileEx( if(hMpqFile != NULL)
{
if(!SFileFinishFile(hMpqFile))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Cleanup and exit
@@ -1036,7 +1036,7 @@ bool WINAPI SFileAddFileEx( if(pStream != NULL)
FileStream_Close(pStream);
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -1136,7 +1136,7 @@ bool WINAPI SFileRemoveFile(HANDLE hMpq, const char * szFileName, DWORD dwSearch FreeFileHandle(hf);
}
else
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// If the file has been deleted, we need to invalidate
@@ -1155,7 +1155,7 @@ bool WINAPI SFileRemoveFile(HANDLE hMpq, const char * szFileName, DWORD dwSearch // Resolve error and exit
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -1226,7 +1226,7 @@ bool WINAPI SFileRenameFile(HANDLE hMpq, const char * szFileName, const char * s }
else
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
}
@@ -1236,7 +1236,7 @@ bool WINAPI SFileRenameFile(HANDLE hMpq, const char * szFileName, const char * s // Resolve error and exit
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -1249,7 +1249,7 @@ bool WINAPI SFileSetDataCompression(DWORD DataCompression) if((DataCompression & uValidMask) != DataCompression)
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
@@ -1269,7 +1269,7 @@ bool WINAPI SFileSetFileLocale(HANDLE hFile, LCID lcNewLocale) // Invalid handle => do nothing
if(hf == NULL)
{
- SetLastError(ERROR_INVALID_HANDLE);
+ SErrSetLastError(ERROR_INVALID_HANDLE);
return false;
}
@@ -1277,28 +1277,28 @@ bool WINAPI SFileSetFileLocale(HANDLE hFile, LCID lcNewLocale) ha = hf->ha;
if(ha->dwFlags & MPQ_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
// Do not allow unnamed access
if(hf->pFileEntry->szFileName == NULL)
{
- SetLastError(ERROR_CAN_NOT_COMPLETE);
+ SErrSetLastError(ERROR_CAN_NOT_COMPLETE);
return false;
}
// Do not allow to change locale of any internal file
if(IsInternalMpqFileName(hf->pFileEntry->szFileName))
{
- SetLastError(ERROR_INTERNAL_FILE);
+ SErrSetLastError(ERROR_INTERNAL_FILE);
return false;
}
// Do not allow changing file locales if there is no hash table
if(hf->pHashEntry == NULL)
{
- SetLastError(ERROR_NOT_SUPPORTED);
+ SErrSetLastError(ERROR_NOT_SUPPORTED);
return false;
}
@@ -1306,14 +1306,14 @@ bool WINAPI SFileSetFileLocale(HANDLE hFile, LCID lcNewLocale) pFileEntry = GetFileEntryExact(ha, hf->pFileEntry->szFileName, lcNewLocale, NULL);
if(pFileEntry != NULL)
{
- SetLastError(ERROR_ALREADY_EXISTS);
+ SErrSetLastError(ERROR_ALREADY_EXISTS);
return false;
}
// Update the locale in the hash table entry
hf->pHashEntry->Locale = SFILE_LOCALE(lcNewLocale);
hf->pHashEntry->Platform = SFILE_PLATFORM(lcNewLocale);
- hf->pHashEntry->Reserved = 0;
+ hf->pHashEntry->Flags = 0;
ha->dwFlags |= MPQ_FLAG_CHANGED;
return true;
}
@@ -1327,7 +1327,7 @@ bool WINAPI SFileSetAddFileCallback(HANDLE hMpq, SFILE_ADDFILE_CALLBACK AddFileC if(!IsValidMpqHandle(hMpq))
{
- SetLastError(ERROR_INVALID_HANDLE);
+ SErrSetLastError(ERROR_INVALID_HANDLE);
return false;
}
diff --git a/src/SFileAttributes.cpp b/src/SFileAttributes.cpp index dbcc456..7a26562 100644 --- a/src/SFileAttributes.cpp +++ b/src/SFileAttributes.cpp @@ -392,7 +392,7 @@ DWORD SAttrLoadAttributes(TMPQArchive * ha) // Load the entire file to memory
if(!SFileReadFile(hFile, pbAttrFile, cbAttrFile, &dwBytesRead, NULL))
- ha->dwFlags |= (GetLastError() == ERROR_FILE_CORRUPT) ? MPQ_FLAG_MALFORMED : 0;
+ ha->dwFlags |= (SErrGetLastError() == ERROR_FILE_CORRUPT) ? MPQ_FLAG_MALFORMED : 0;
// Parse the (attributes)
if(dwBytesRead == cbAttrFile)
@@ -478,7 +478,7 @@ DWORD WINAPI SFileGetAttributes(HANDLE hMpq) // Verify the parameters
if(!IsValidMpqHandle(hMpq))
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return SFILE_INVALID_ATTRIBUTES;
}
@@ -492,14 +492,14 @@ bool WINAPI SFileSetAttributes(HANDLE hMpq, DWORD dwFlags) // Verify the parameters
if(!IsValidMpqHandle(hMpq))
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
// Not allowed when the archive is read-only
if(ha->dwFlags & MPQ_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
@@ -523,14 +523,14 @@ bool WINAPI SFileUpdateFileAttributes(HANDLE hMpq, const char * szFileName) // Verify the parameters
if(!IsValidMpqHandle(ha))
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
// Not allowed when the archive is read-only
if(ha->dwFlags & MPQ_FLAG_READ_ONLY)
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
diff --git a/src/SFileCompactArchive.cpp b/src/SFileCompactArchive.cpp index 1077daa..8ad1b4b 100644 --- a/src/SFileCompactArchive.cpp +++ b/src/SFileCompactArchive.cpp @@ -116,14 +116,14 @@ static DWORD CopyNonMpqData( // Read from the source stream
if(!FileStream_Read(pSrcStream, &ByteOffset, DataBuffer, dwToRead))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
// Write to the target stream
if(!FileStream_Write(pTrgStream, NULL, DataBuffer, dwToRead))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -175,7 +175,7 @@ static DWORD CopyMpqFileSectors( {
BSWAP_ARRAY32_UNSIGNED(hf->pPatchInfo, sizeof(DWORD) * 3);
if(!FileStream_Write(pNewStream, NULL, hf->pPatchInfo, hf->pPatchInfo->dwLength))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Save the size of the patch info
dwPatchSize = hf->pPatchInfo->dwLength;
@@ -202,7 +202,7 @@ static DWORD CopyMpqFileSectors( BSWAP_ARRAY32_UNSIGNED(SectorOffsetsCopy, dwSectorOffsLen);
if(!FileStream_Write(pNewStream, NULL, SectorOffsetsCopy, dwSectorOffsLen))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
dwBytesToCopy -= dwSectorOffsLen;
dwCmpSize += dwSectorOffsLen;
@@ -244,7 +244,7 @@ static DWORD CopyMpqFileSectors( // Read the file sector
if(!FileStream_Read(ha->pStream, &RawFilePos, hf->pbFileSector, dwRawDataInSector))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -262,7 +262,7 @@ static DWORD CopyMpqFileSectors( // Now write the sector back to the file
if(!FileStream_Write(pNewStream, NULL, hf->pbFileSector, dwRawDataInSector))
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
break;
}
@@ -289,10 +289,10 @@ static DWORD CopyMpqFileSectors( if(dwCrcLength != 0)
{
if(!FileStream_Read(ha->pStream, NULL, hf->SectorChksums, dwCrcLength))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
if(!FileStream_Write(pNewStream, NULL, hf->SectorChksums, dwCrcLength))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Update compact progress
if(ha->pfnCompactCB != NULL)
@@ -321,10 +321,10 @@ static DWORD CopyMpqFileSectors( if(pbExtraData != NULL)
{
if(!FileStream_Read(ha->pStream, NULL, pbExtraData, dwBytesToCopy))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
if(!FileStream_Write(pNewStream, NULL, pbExtraData, dwBytesToCopy))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Include these extra data in the compressed size
dwCmpSize += dwBytesToCopy;
@@ -501,7 +501,7 @@ bool WINAPI SFileSetMaxFileCount(HANDLE hMpq, DWORD dwMaxFileCount) // Return the error
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -514,7 +514,7 @@ bool WINAPI SFileSetCompactCallback(HANDLE hMpq, SFILE_COMPACT_CALLBACK pfnCompa if (!IsValidMpqHandle(hMpq))
{
- SetLastError(ERROR_INVALID_HANDLE);
+ SErrSetLastError(ERROR_INVALID_HANDLE);
return false;
}
@@ -574,7 +574,7 @@ bool WINAPI SFileCompactArchive(HANDLE hMpq, const TCHAR * szListFile, bool /* b // Create temporary file
pTempStream = FileStream_CreateFile(szTempFile, STREAM_PROVIDER_FLAT | BASE_PROVIDER_FILE);
if(pTempStream == NULL)
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Write the data before MPQ user data (if any)
@@ -615,7 +615,7 @@ bool WINAPI SFileCompactArchive(HANDLE hMpq, const TCHAR * szListFile, bool /* b BSWAP_TMPQHEADER(&SaveMpqHeader, MPQ_FORMAT_VERSION_3);
BSWAP_TMPQHEADER(&SaveMpqHeader, MPQ_FORMAT_VERSION_4);
if(!FileStream_Write(pTempStream, NULL, &SaveMpqHeader, ha->pHeader->dwHeaderSize))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
// Update the progress
ha->CompactBytesProcessed += ha->pHeader->dwHeaderSize;
@@ -649,6 +649,6 @@ bool WINAPI SFileCompactArchive(HANDLE hMpq, const TCHAR * szListFile, bool /* b if(pFileKeys != NULL)
STORM_FREE(pFileKeys);
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
diff --git a/src/SFileCreateArchive.cpp b/src/SFileCreateArchive.cpp index bae3dcc..9a311e0 100644 --- a/src/SFileCreateArchive.cpp +++ b/src/SFileCreateArchive.cpp @@ -68,7 +68,7 @@ static DWORD WriteNakedMPQHeader(TMPQArchive * ha) BSWAP_TMPQHEADER(&Header, MPQ_FORMAT_VERSION_3); BSWAP_TMPQHEADER(&Header, MPQ_FORMAT_VERSION_4); if(!FileStream_Write(ha->pStream, &ha->MpqPos, &Header, dwBytesToWrite)) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); return dwErrCode; } @@ -121,7 +121,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea // Check the parameters, if they are valid if(szMpqName == NULL || *szMpqName == 0 || pCreateInfo == NULL || phMpq == NULL) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return false; } @@ -133,7 +133,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea (pCreateInfo->dwSectorSize & (pCreateInfo->dwSectorSize - 1)) || (pCreateInfo->dwRawChunkSize & (pCreateInfo->dwRawChunkSize - 1))) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return false; } @@ -145,7 +145,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea if(SFileOpenArchive(szMpqName, 0, STREAM_PROVIDER_FLAT | BASE_PROVIDER_FILE | MPQ_OPEN_NO_ATTRIBUTES | MPQ_OPEN_NO_LISTFILE, &hMpq)) { SFileCloseArchive(hMpq); - SetLastError(ERROR_ALREADY_EXISTS); + SErrSetLastError(ERROR_ALREADY_EXISTS); return false; } @@ -191,7 +191,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea FileStream_GetSize(pStream, &MpqPos); MpqPos = (MpqPos + 0x1FF) & (ULONGLONG)0xFFFFFFFFFFFFFE00ULL; if(!FileStream_SetSize(pStream, MpqPos)) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); #ifdef _DEBUG // Debug code, used for testing StormLib @@ -275,7 +275,7 @@ bool WINAPI SFileCreateArchive2(const TCHAR * szMpqName, PSFILE_CREATE_MPQ pCrea { FileStream_Close(pStream); FreeArchiveHandle(ha); - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); ha = NULL; } diff --git a/src/SFileExtractFile.cpp b/src/SFileExtractFile.cpp index 6b3b767..b65410c 100644 --- a/src/SFileExtractFile.cpp +++ b/src/SFileExtractFile.cpp @@ -22,7 +22,7 @@ bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR if(dwErrCode == ERROR_SUCCESS) { if(!SFileOpenFileEx(hMpq, szToExtract, dwSearchScope, &hMpqFile)) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); } // Create the local file @@ -30,7 +30,7 @@ bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR { pLocalFile = FileStream_CreateFile(szExtracted, 0); if(pLocalFile == NULL) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); } // Copy the file's content @@ -42,7 +42,7 @@ bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR // dwTransferred is only set to nonzero if something has been read. // dwErrCode can be ERROR_SUCCESS or ERROR_HANDLE_EOF if(!SFileReadFile(hMpqFile, szBuffer, sizeof(szBuffer), &dwTransferred, NULL)) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); if(dwErrCode == ERROR_HANDLE_EOF) dwErrCode = ERROR_SUCCESS; if(dwTransferred == 0) @@ -50,7 +50,7 @@ bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR // If something has been actually read, write it if(!FileStream_Write(pLocalFile, NULL, szBuffer, dwTransferred)) - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); } // Close the files @@ -59,6 +59,6 @@ bool WINAPI SFileExtractFile(HANDLE hMpq, const char * szToExtract, const TCHAR if(pLocalFile != NULL) FileStream_Close(pLocalFile); if(dwErrCode != ERROR_SUCCESS) - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); return (dwErrCode == ERROR_SUCCESS); } diff --git a/src/SFileFindFile.cpp b/src/SFileFindFile.cpp index 8f4849f..5e09026 100644 --- a/src/SFileFindFile.cpp +++ b/src/SFileFindFile.cpp @@ -444,7 +444,7 @@ HANDLE WINAPI SFileFindFirstFile(HANDLE hMpq, const char * szMask, SFILE_FIND_DA if(dwErrCode != ERROR_SUCCESS)
{
FreeMPQSearch(hs);
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
}
// Return the result value
@@ -466,7 +466,7 @@ bool WINAPI SFileFindNextFile(HANDLE hFind, SFILE_FIND_DATA * lpFindFileData) dwErrCode = DoMPQSearch(hs, lpFindFileData);
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
@@ -477,7 +477,7 @@ bool WINAPI SFileFindClose(HANDLE hFind) // Check the parameters
if(hs == NULL)
{
- SetLastError(ERROR_INVALID_HANDLE);
+ SErrSetLastError(ERROR_INVALID_HANDLE);
return false;
}
diff --git a/src/SFileGetFileInfo.cpp b/src/SFileGetFileInfo.cpp index 1746fa0..3c05e13 100644 --- a/src/SFileGetFileInfo.cpp +++ b/src/SFileGetFileInfo.cpp @@ -44,7 +44,7 @@ static DWORD GetMpqFileCount(TMPQArchive * ha) static bool GetInfo_ReturnError(DWORD dwErrCode)
{
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return false;
}
@@ -411,12 +411,12 @@ bool WINAPI SFileGetFileInfo( case SFileInfoNameHash1:
if(hf->pHashEntry == NULL)
return GetInfo_ReturnError(ERROR_INVALID_PARAMETER);
- return GetInfo(pvFileInfo, cbFileInfo, &hf->pHashEntry->dwName1, sizeof(DWORD), pcbLengthNeeded);
+ return GetInfo(pvFileInfo, cbFileInfo, &hf->pHashEntry->dwHashCheck1, sizeof(DWORD), pcbLengthNeeded);
case SFileInfoNameHash2:
if(hf->pHashEntry == NULL)
return GetInfo_ReturnError(ERROR_INVALID_PARAMETER);
- return GetInfo(pvFileInfo, cbFileInfo, &hf->pHashEntry->dwName2, sizeof(DWORD), pcbLengthNeeded);
+ return GetInfo(pvFileInfo, cbFileInfo, &hf->pHashEntry->dwHashCheck2, sizeof(DWORD), pcbLengthNeeded);
case SFileInfoNameHash3:
return GetInfo(pvFileInfo, cbFileInfo, &pFileEntry->FileNameHash, sizeof(ULONGLONG), pcbLengthNeeded);
@@ -483,7 +483,7 @@ bool WINAPI SFileFreeFileInfo(void * pvFileInfo, SFileInfoClass InfoClass) break;
}
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
@@ -621,7 +621,7 @@ bool WINAPI SFileGetFileName(HANDLE hFile, char * szFileName) }
if(dwErrCode != ERROR_SUCCESS)
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return (dwErrCode == ERROR_SUCCESS);
}
diff --git a/src/SFileListFile.cpp b/src/SFileListFile.cpp index b2a3a3c..3e7a175 100644 --- a/src/SFileListFile.cpp +++ b/src/SFileListFile.cpp @@ -203,7 +203,7 @@ static TListFileCache * CreateListFileCache( }
// This combination should never happen
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
assert(false);
return NULL;
}
@@ -411,8 +411,8 @@ static DWORD SListFileCreateNodeForAllLocales(TMPQArchive * ha, const char * szF TFileEntry * pFileEntry;
TMPQHash * pHashEnd;
TMPQHash * pHash;
- DWORD dwName1;
- DWORD dwName2;
+ DWORD dwHashCheck1;
+ DWORD dwHashCheck2;
// If we have HET table, use that one
if(ha->pHetTable != NULL)
@@ -432,8 +432,8 @@ static DWORD SListFileCreateNodeForAllLocales(TMPQArchive * ha, const char * szF {
// Get the end of the hash table and both names
pHashEnd = ha->pHashTable + ha->pHeader->dwHashTableSize;
- dwName1 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_A);
- dwName2 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_B);
+ dwHashCheck1 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_A);
+ dwHashCheck2 = ha->pfnHashString(szFileName, MPQ_HASH_NAME_B);
// Some protectors set very high hash table size (0x00400000 items or more)
// in order to make this process very slow. We will ignore items
@@ -445,7 +445,7 @@ static DWORD SListFileCreateNodeForAllLocales(TMPQArchive * ha, const char * szF // Go through the hash table and put the name in each item that has the same name pair
for(pHash = ha->pHashTable; pHash < pHashEnd; pHash++)
{
- if(pHash->dwName1 == dwName1 && pHash->dwName2 == dwName2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
+ if(pHash->dwHashCheck1 == dwHashCheck1 && pHash->dwHashCheck2 == dwHashCheck2 && MPQ_BLOCK_INDEX(pHash) < ha->dwFileTableSize)
{
// Allocate file name for the file entry
AllocateFileName(ha, ha->pFileTable + MPQ_BLOCK_INDEX(pHash), szFileName);
@@ -649,7 +649,7 @@ static bool DoListFileSearch(TListFileCache * pCache, SFILE_FIND_DATA * lpFindFi // No more files
memset(lpFindFileData, 0, sizeof(SFILE_FIND_DATA));
- SetLastError(ERROR_NO_MORE_FILES);
+ SErrSetLastError(ERROR_NO_MORE_FILES);
return false;
}
@@ -726,7 +726,7 @@ HANDLE WINAPI SListFileFindFirstFile(HANDLE hMpq, const TCHAR * szListFile, cons if(!DoListFileSearch(pCache, lpFindFileData))
{
memset(lpFindFileData, 0, sizeof(SFILE_FIND_DATA));
- SetLastError(ERROR_NO_MORE_FILES);
+ SErrSetLastError(ERROR_NO_MORE_FILES);
FreeListFileCache(pCache);
pCache = NULL;
}
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp index 17fc7c9..47136fe 100644 --- a/src/SFileOpenArchive.cpp +++ b/src/SFileOpenArchive.cpp @@ -217,7 +217,7 @@ bool WINAPI SFileSetArchiveMarkers(PSFILE_MARKERS pMarkers) // Check structure minimum size if(pMarkers == NULL || pMarkers->dwSize < SFILE_MARKERS_MIN_SIZE) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return false; } @@ -281,7 +281,7 @@ bool WINAPI SFileOpenArchive( // Verify the parameters if(szMpqName == NULL || *szMpqName == 0 || phMpq == NULL) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return false; } @@ -367,7 +367,7 @@ bool WINAPI SFileOpenArchive( // Read the eventual MPQ header if(!FileStream_Read(ha->pStream, &ByteOffset, pbHeaderBuffer, dwBytesAvailable)) { - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); break; } @@ -408,7 +408,7 @@ bool WINAPI SFileOpenArchive( // Read the eventual MPQ header from the position where the user data points if(!FileStream_Read(ha->pStream, &TempByteOffset, ha->HeaderData, sizeof(ha->HeaderData))) { - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); break; } @@ -614,7 +614,7 @@ bool WINAPI SFileOpenArchive( { FileStream_Close(pStream); FreeArchiveHandle(ha); - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); ha = NULL; } @@ -639,7 +639,7 @@ bool WINAPI SFileSetDownloadCallback(HANDLE hMpq, SFILE_DOWNLOAD_CALLBACK Downlo // Do nothing if 'hMpq' is bad parameter if(!IsValidMpqHandle(hMpq)) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return false; } @@ -664,7 +664,7 @@ bool WINAPI SFileFlushArchive(HANDLE hMpq) // Do nothing if 'hMpq' is bad parameter if((ha = IsValidMpqHandle(hMpq)) == NULL) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return false; } @@ -730,7 +730,7 @@ bool WINAPI SFileFlushArchive(HANDLE hMpq) // Return the error if(dwResultError != ERROR_SUCCESS) - SetLastError(dwResultError); + SErrSetLastError(dwResultError); return (dwResultError == ERROR_SUCCESS); } @@ -746,7 +746,7 @@ bool WINAPI SFileCloseArchive(HANDLE hMpq) // Only if the handle is valid if(ha == NULL) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return false; } diff --git a/src/SFileOpenFileEx.cpp b/src/SFileOpenFileEx.cpp index 2954669..e555303 100644 --- a/src/SFileOpenFileEx.cpp +++ b/src/SFileOpenFileEx.cpp @@ -97,7 +97,7 @@ static bool OpenLocalFile(const char * szFileName, HANDLE * PtrFile) else { FileStream_Close(pStream); - SetLastError(ERROR_NOT_ENOUGH_MEMORY); + SErrSetLastError(ERROR_NOT_ENOUGH_MEMORY); } } *PtrFile = NULL; @@ -160,14 +160,14 @@ bool OpenPatchedFile(HANDLE hMpq, const char * szFileName, HANDLE * PtrFile) if(hfBase && hf && hf->pFileEntry->dwFlags & MPQ_FILE_DELETE_MARKER) { SFileCloseFile((HANDLE)(hfBase)); - SetLastError(ERROR_FILE_DELETED); + SErrSetLastError(ERROR_FILE_DELETED); hfBase = NULL; } } } else { - SetLastError(ERROR_FILE_NOT_FOUND); + SErrSetLastError(ERROR_FILE_NOT_FOUND); } // Give the updated base MPQ @@ -397,7 +397,7 @@ bool WINAPI SFileOpenFileEx(HANDLE hMpq, const char * szFileName, DWORD dwSearch // Return error code if(dwErrCode != ERROR_SUCCESS) - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); return (dwErrCode == ERROR_SUCCESS); } @@ -421,7 +421,7 @@ bool WINAPI SFileCloseFile(HANDLE hFile) if(!IsValidFileHandle(hFile)) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return false; } diff --git a/src/SFilePatchArchives.cpp b/src/SFilePatchArchives.cpp index 5d9450d..790b96b 100644 --- a/src/SFilePatchArchives.cpp +++ b/src/SFilePatchArchives.cpp @@ -1155,11 +1155,11 @@ bool WINAPI SFileOpenPatchArchive( }
else
{
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
}
- SetLastError(dwErrCode);
+ SErrSetLastError(dwErrCode);
return false;
}
diff --git a/src/SFileReadFile.cpp b/src/SFileReadFile.cpp index f2c17ba..ee91cac 100644 --- a/src/SFileReadFile.cpp +++ b/src/SFileReadFile.cpp @@ -224,7 +224,7 @@ static DWORD ReadMpqSectors(TMPQFile * hf, LPBYTE pbBuffer, DWORD dwByteOffset, } else { - dwErrCode = GetLastError(); + dwErrCode = SErrGetLastError(); } // Free all used buffers @@ -280,7 +280,7 @@ static DWORD ReadMpqFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFileP if(!FileStream_Read(ha->pStream, &RawFilePos, pbRawData, cbRawData)) { STORM_FREE(pbCompressed); - return GetLastError(); + return SErrGetLastError(); } // If the file is encrypted, we have to decrypt the data first @@ -411,7 +411,7 @@ static DWORD ReadMpkFileSingleUnit(TMPQFile * hf, void * pvBuffer, DWORD dwFileP if(!FileStream_Read(ha->pStream, &RawFilePos, pbRawData, pFileEntry->dwCmpSize)) { STORM_FREE(pbCompressed); - return GetLastError(); + return SErrGetLastError(); } // If the file is encrypted, we have to decrypt the data first @@ -666,7 +666,7 @@ static DWORD ReadMpqFileLocalFile(TMPQFile * hf, void * pvBuffer, DWORD dwFilePo if(!FileStream_Read(hf->pStream, &FilePosition1, pvBuffer, dwToRead)) { // If not all bytes have been read, then return the number of bytes read - if((dwErrCode = GetLastError()) == ERROR_HANDLE_EOF) + if((dwErrCode = SErrGetLastError()) == ERROR_HANDLE_EOF) { FileStream_GetPos(hf->pStream, &FilePosition2); dwBytesRead = (DWORD)(FilePosition2 - FilePosition1); @@ -699,13 +699,13 @@ bool WINAPI SFileReadFile(HANDLE hFile, void * pvBuffer, DWORD dwToRead, LPDWORD // Check valid parameters if((hf = IsValidFileHandle(hFile)) == NULL) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return false; } if(pvBuffer == NULL) { - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return false; } @@ -715,7 +715,7 @@ bool WINAPI SFileReadFile(HANDLE hFile, void * pvBuffer, DWORD dwToRead, LPDWORD dwErrCode = AllocatePatchInfo(hf, true); if(dwErrCode != ERROR_SUCCESS || hf->pPatchInfo == NULL) { - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); return false; } } @@ -768,7 +768,7 @@ bool WINAPI SFileReadFile(HANDLE hFile, void * pvBuffer, DWORD dwToRead, LPDWORD // If something failed, set the last error value if(dwErrCode != ERROR_SUCCESS) - SetLastError(dwErrCode); + SErrSetLastError(dwErrCode); return (dwErrCode == ERROR_SUCCESS); } @@ -818,7 +818,7 @@ DWORD WINAPI SFileGetFileSize(HANDLE hFile, LPDWORD pdwFileSizeHigh) return (DWORD)FileSize; } - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return SFILE_INVALID_SIZE; } @@ -833,7 +833,7 @@ DWORD WINAPI SFileSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * plFilePosHi // If the hFile is not a valid file handle, return an error. if(!IsValidFileHandle(hFile)) { - SetLastError(ERROR_INVALID_HANDLE); + SErrSetLastError(ERROR_INVALID_HANDLE); return SFILE_INVALID_POS; } @@ -881,7 +881,7 @@ DWORD WINAPI SFileSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * plFilePosHi break; default: - SetLastError(ERROR_INVALID_PARAMETER); + SErrSetLastError(ERROR_INVALID_PARAMETER); return SFILE_INVALID_POS; } @@ -893,7 +893,7 @@ DWORD WINAPI SFileSetFilePointer(HANDLE hFile, LONG lFilePos, LONG * plFilePosHi { if(NewPosition > FileSize) // Position is negative { - SetLastError(ERROR_NEGATIVE_SEEK); + SErrSetLastError(ERROR_NEGATIVE_SEEK); return SFILE_INVALID_POS; } } diff --git a/src/SFileVerify.cpp b/src/SFileVerify.cpp index 9bbbb6b..96b5725 100644 --- a/src/SFileVerify.cpp +++ b/src/SFileVerify.cpp @@ -411,7 +411,7 @@ static DWORD VerifyRawMpqData( {
// Read the array of MD5
if(!FileStream_Read(ha->pStream, &DataOffset, pbMD5Array2, dwMD5Size))
- dwErrCode = GetLastError();
+ dwErrCode = SErrGetLastError();
}
// Compare the array of MD5
@@ -631,7 +631,7 @@ static DWORD VerifyFile( SFileReadFile(hFile, Buffer, sizeof(Buffer), &dwBytesRead, NULL);
if(dwBytesRead == 0)
{
- if(GetLastError() == ERROR_CHECKSUM_ERROR)
+ if(SErrGetLastError() == ERROR_CHECKSUM_ERROR)
dwVerifyResult |= VERIFY_FILE_SECTOR_CRC_ERROR;
break;
}
@@ -868,7 +868,7 @@ DWORD SSignFileFinish(TMPQArchive * ha) // Write the signature to the MPQ. Don't use SFile* functions, but write the hash directly
if(!FileStream_Write(ha->pStream, &si.BeginExclude, WeakSignature, MPQ_SIGNATURE_FILE_SIZE))
- return GetLastError();
+ return SErrGetLastError();
return ERROR_SUCCESS;
}
@@ -895,7 +895,7 @@ bool WINAPI SFileGetFileChecksums(HANDLE hMpq, const char * szFileName, LPDWORD // If verification failed, return zero
if(dwVerifyResult & VERIFY_FILE_ERROR_MASK)
{
- SetLastError(ERROR_FILE_CORRUPT);
+ SErrSetLastError(ERROR_FILE_CORRUPT);
return false;
}
@@ -1026,21 +1026,21 @@ bool WINAPI SFileSignArchive(HANDLE hMpq, DWORD dwSignatureType) ha = IsValidMpqHandle(hMpq);
if(ha == NULL)
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
// We only support weak signature, and only for MPQs version 1.0
if(dwSignatureType != SIGNATURE_TYPE_WEAK)
{
- SetLastError(ERROR_INVALID_PARAMETER);
+ SErrSetLastError(ERROR_INVALID_PARAMETER);
return false;
}
// The archive must not be malformed and must not be read-only
if(ha->dwFlags & (MPQ_FLAG_READ_ONLY | MPQ_FLAG_MALFORMED))
{
- SetLastError(ERROR_ACCESS_DENIED);
+ SErrSetLastError(ERROR_ACCESS_DENIED);
return false;
}
diff --git a/src/SMemUtf8.cpp b/src/SMemUtf8.cpp index abc16ee..b9d5e9d 100644 --- a/src/SMemUtf8.cpp +++ b/src/SMemUtf8.cpp @@ -551,3 +551,32 @@ DWORD WINAPI SMemFileNameToUTF8( pOutLength[0] = nOutLength; return dwErrCode; } + +//----------------------------------------------------------------------------- +// (Set/Get)LastError wrapper + +#ifndef STORMLIB_WINDOWS +#ifndef STORMLIB_WIIU +static thread_local DWORD dwLastError = ERROR_SUCCESS; +#else +static DWORD dwLastError = ERROR_SUCCESS; +#endif +#endif + +void SErrSetLastError(DWORD dwErrCode) +{ +#ifdef STORMLIB_WINDOWS + SetLastError(dwErrCode); +#else + dwLastError = dwErrCode; +#endif +} + +DWORD SErrGetLastError() +{ +#ifdef STORMLIB_WINDOWS + return GetLastError(); +#else + return dwLastError; +#endif +} diff --git a/src/StormCommon.h b/src/StormCommon.h index 52f5cd0..ed67fe1 100644 --- a/src/StormCommon.h +++ b/src/StormCommon.h @@ -333,7 +333,7 @@ DWORD ConvertMpqHeaderToFormat4(TMPQArchive * ha, ULONGLONG MpqOffset, ULONGLONG bool IsValidHashEntry(TMPQArchive * ha, TMPQHash * pHash);
-TMPQHash * FindFreeHashEntry(TMPQArchive * ha, DWORD dwStartIndex, DWORD dwName1, DWORD dwName2, LCID lcFileLocale);
+TMPQHash * FindFreeHashEntry(TMPQArchive * ha, DWORD dwStartIndex, DWORD dwHashCheck1, DWORD dwHashCheck2, LCID lcFileLocale);
TMPQHash * GetFirstHashEntry(TMPQArchive * ha, const char * szFileName);
TMPQHash * GetNextHashEntry(TMPQArchive * ha, TMPQHash * pFirstHash, TMPQHash * pPrevHash);
TMPQHash * AllocateHashEntry(TMPQArchive * ha, TFileEntry * pFileEntry, LCID lcFileLocale);
diff --git a/src/StormLib.h b/src/StormLib.h index 4392bc0..e1db062 100644 --- a/src/StormLib.h +++ b/src/StormLib.h @@ -631,10 +631,10 @@ typedef struct _TMPQHeader typedef struct _TMPQHash { // The hash of the file path, using method A. - DWORD dwName1; + DWORD dwHashCheck1; // The hash of the file path, using method B. - DWORD dwName2; + DWORD dwHashCheck2; #ifdef STORMLIB_LITTLE_ENDIAN @@ -645,11 +645,11 @@ typedef struct _TMPQHash // The platform the file is used for. 0 indicates the default platform. // No other values have been observed. BYTE Platform; - BYTE Reserved; + BYTE Flags; #else - BYTE Reserved; + BYTE Flags; BYTE Platform; USHORT Locale; @@ -1158,14 +1158,10 @@ DWORD WINAPI SMemFileNameToUTF8( size_t * pOutLength); // Pointer to a variable that receives the needed length in bytes (optional) //----------------------------------------------------------------------------- -// Non-Windows support for SetLastError/GetLastError +// Stormlib-specific support for SetLastError/GetLastError -#ifndef STORMLIB_WINDOWS - -void SetLastError(DWORD dwErrCode); -DWORD GetLastError(); - -#endif +void SErrSetLastError(DWORD dwErrCode); +DWORD SErrGetLastError(); //----------------------------------------------------------------------------- // Functions from Storm.dll. They use slightly different names for keeping diff --git a/src/lzma/C/Threads.c b/src/lzma/C/Threads.c index 7af1da2..17f70be 100644 --- a/src/lzma/C/Threads.c +++ b/src/lzma/C/Threads.c @@ -9,7 +9,7 @@ static WRes GetError() { - DWORD res = GetLastError(); + DWORD res = SErrGetLastError(); return (res) ? (WRes)(res) : 1; } |