diff options
Diffstat (limited to 'src/FileStream.cpp')
-rw-r--r-- | src/FileStream.cpp | 73 |
1 files changed, 27 insertions, 46 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;
}
|