From a3cac34c74c5e7dc9b6d89e823bfc41b294214ed Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 6 Nov 2015 13:02:45 -0500 Subject: [PATCH] [Common] CFile::Write(): Use standard memory size input type. --- Source/Common/File Class.cpp | 10 +++++++--- Source/Common/File Class.h | 4 ++-- Source/Common/Log Class.cpp | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Source/Common/File Class.cpp b/Source/Common/File Class.cpp index 2e7a25d69..39166f792 100644 --- a/Source/Common/File Class.cpp +++ b/Source/Common/File Class.cpp @@ -140,15 +140,19 @@ bool CFile::Flush() return ::FlushFileBuffers(m_hFile) != 0; } -bool CFile::Write(const void* lpBuf, uint32_t nCount) +bool CFile::Write(const void* lpBuf, size_t nCount) { if (nCount == 0) { return true; // avoid Win32 "null-write" option } + if (nCount > ULONG_MAX) + { + nCount = ULONG_MAX; /* Or should we loop WriteFile() every 2 GB? */ + } - ULONG nWritten = 0; - if (!::WriteFile(m_hFile, lpBuf, nCount, &nWritten, NULL)) + DWORD nWritten = 0; + if (!::WriteFile(m_hFile, lpBuf, (DWORD)nCount, &nWritten, NULL)) { return false; } diff --git a/Source/Common/File Class.h b/Source/Common/File Class.h index fc734f633..b47709da0 100644 --- a/Source/Common/File Class.h +++ b/Source/Common/File Class.h @@ -41,7 +41,7 @@ public: virtual uint32_t GetLength() const = 0; virtual uint32_t Read(void* lpBuf, uint32_t nCount) = 0; - virtual bool Write(const void* lpBuf, uint32_t nCount) = 0; + virtual bool Write(const void* lpBuf, size_t nCount) = 0; virtual bool Flush() = 0; virtual bool Close() = 0; @@ -79,7 +79,7 @@ public: virtual uint32_t GetLength() const; virtual uint32_t Read(void* lpBuf, uint32_t nCount); - virtual bool Write(const void* lpBuf, uint32_t nCount); + virtual bool Write(const void* lpBuf, size_t nCount); virtual bool Flush(); virtual bool Close(); diff --git a/Source/Common/Log Class.cpp b/Source/Common/Log Class.cpp index 95f001dba..4eebfc35a 100644 --- a/Source/Common/Log Class.cpp +++ b/Source/Common/Log Class.cpp @@ -120,7 +120,7 @@ void CLog::LogArgs(const char * Message, va_list & args ) void CLog::Log( const char * Message ) { if (!m_hLogFile.IsOpen()) { return; } - m_hLogFile.Write(Message,(uint32_t)strlen(Message)*sizeof(TCHAR)); + m_hLogFile.Write(Message, strlen(Message)*sizeof(TCHAR)); if (m_FlushOnWrite) { m_hLogFile.Flush();