From 6d3821d8075bca1f1a306c6db6f3404fadeacc17 Mon Sep 17 00:00:00 2001 From: MiloPernemarkDEV Date: Thu, 9 Jul 2026 22:10:27 +0200 Subject: [PATCH 1/5] modernize: replace C-style cast with reinterpret_cast in TimeNow --- CcpTime.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CcpTime.cpp b/CcpTime.cpp index b9dd159..5b67fa9 100644 --- a/CcpTime.cpp +++ b/CcpTime.cpp @@ -60,11 +60,13 @@ bool TimeFromDateTime( CcpTime& timeStamp, const CcpDateTime& dateTime ) CcpTime TimeNow() { CcpTime time = 0; - GetSystemTimeAsFileTime( (FILETIME*)&time ); + + // Moved to reinterpret-cast to make the pointer conversion explicit + // GetSystemTimeAsFileTime( (FILETIME*)&time ); + GetSystemTimeAsFileTime( reinterpret_cast( &time ) ); return time; } - #elif defined(__APPLE__) #include From 8d95e95194efdd9e3f31ff333cee5013adb98578 Mon Sep 17 00:00:00 2001 From: MiloPernemarkDEV Date: Thu, 9 Jul 2026 22:47:08 +0200 Subject: [PATCH 2/5] Replace magic buffer size with named constant --- CCPLog.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CCPLog.cpp b/CCPLog.cpp index 9de4096..07d711a 100644 --- a/CCPLog.cpp +++ b/CCPLog.cpp @@ -10,7 +10,8 @@ #include #endif -char s_largeBuffer[65535]{}; +constexpr size_t LARGE_BUFFER_SIZE = 65535; +char s_largeBuffer[LARGE_BUFFER_SIZE]{}; namespace { @@ -229,7 +230,7 @@ CARBON_CORE_API void LogFuncChannel_v( CcpLogChannel_t& logObject, LogType type, output = s_largeBuffer; vsnprintf( output, std::extent_v, format, argCopy2 ); - assert( s_largeBuffer[65534] == '\0' ); + assert( s_largeBuffer[LARGE_BUFFER_SIZE] == '\0' ); } LogFuncChannelRaw( logObject, type, userData, output ); From de942b62122c26eac7ba3682dfa438b6a2e7dfc9 Mon Sep 17 00:00:00 2001 From: MiloPernemarkDEV Date: Thu, 9 Jul 2026 22:50:12 +0200 Subject: [PATCH 3/5] CCPLog: replace buffer size magic numbers with named constants --- CCPLog.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CCPLog.cpp b/CCPLog.cpp index 07d711a..b9e69a1 100644 --- a/CCPLog.cpp +++ b/CCPLog.cpp @@ -10,12 +10,15 @@ #include #endif +constexpr size_t LOG_ERROR_BUFFER_SIZE = 256; +constexpr size_t LOG_LOCAL_BUFFER_SIZE = 256; constexpr size_t LARGE_BUFFER_SIZE = 65535; + char s_largeBuffer[LARGE_BUFFER_SIZE]{}; namespace { - char s_lastError[ 256 ] = ""; + char s_lastError[ LOG_ERROR_BUFFER_SIZE ] = ""; struct LogEchoFuncEntry { @@ -214,7 +217,7 @@ CARBON_CORE_API void LogFuncChannel_v( CcpLogChannel_t& logObject, LogType type, va_copy( argCopy2, args ); #endif - char localBuffer[256]; + char localBuffer[LOG_LOCAL_BUFFER_SIZE]; char* output = localBuffer; if ( vsnprintf( localBuffer, std::extent_v, format, args ) > ( std::extent_v - 1 ) ) { @@ -230,7 +233,7 @@ CARBON_CORE_API void LogFuncChannel_v( CcpLogChannel_t& logObject, LogType type, output = s_largeBuffer; vsnprintf( output, std::extent_v, format, argCopy2 ); - assert( s_largeBuffer[LARGE_BUFFER_SIZE] == '\0' ); + assert( s_largeBuffer[LARGE_BUFFER_SIZE - 1] == '\0' ); } LogFuncChannelRaw( logObject, type, userData, output ); From 8df00fa052ae3ff9fbec9acf2f603a348d6f84c8 Mon Sep 17 00:00:00 2001 From: MiloPernemarkDEV Date: Thu, 9 Jul 2026 22:57:48 +0200 Subject: [PATCH 4/5] Renamed large buffer constant --- CCPLog.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CCPLog.cpp b/CCPLog.cpp index b9e69a1..127df39 100644 --- a/CCPLog.cpp +++ b/CCPLog.cpp @@ -12,9 +12,9 @@ constexpr size_t LOG_ERROR_BUFFER_SIZE = 256; constexpr size_t LOG_LOCAL_BUFFER_SIZE = 256; -constexpr size_t LARGE_BUFFER_SIZE = 65535; +constexpr size_t LOG_LARGE_BUFFER_SIZE = 65535; -char s_largeBuffer[LARGE_BUFFER_SIZE]{}; +char s_largeBuffer[LOG_LARGE_BUFFER_SIZE]{}; namespace { @@ -233,7 +233,7 @@ CARBON_CORE_API void LogFuncChannel_v( CcpLogChannel_t& logObject, LogType type, output = s_largeBuffer; vsnprintf( output, std::extent_v, format, argCopy2 ); - assert( s_largeBuffer[LARGE_BUFFER_SIZE - 1] == '\0' ); + assert( s_largeBuffer[LOG_LARGE_BUFFER_SIZE - 1] == '\0' ); } LogFuncChannelRaw( logObject, type, userData, output ); From 7af63506563f4446edbf390e56f79bec6b1eeccc Mon Sep 17 00:00:00 2001 From: MiloPernemarkDEV Date: Fri, 10 Jul 2026 21:56:17 +0200 Subject: [PATCH 5/5] Add CcpTruncateFile utility function --- CcpFileUtils.cpp | 21 +++++++++++++++++++++ include/CcpFileUtils.h | 1 + 2 files changed, 22 insertions(+) diff --git a/CcpFileUtils.cpp b/CcpFileUtils.cpp index ed59d96..415f551 100644 --- a/CcpFileUtils.cpp +++ b/CcpFileUtils.cpp @@ -76,6 +76,16 @@ void CcpCloseFile( int fd ) _close( fd ); } +bool CcpTruncateFile(const std::wstring& filename) { + int fd = CcpCreateFile( filename.c_str(), CCP_SM_RWSHARING ); + if( fd < 0 ) + { + return false; + } + CcpCloseFile( fd ); + return true; +} + ssize_t CcpReadFromFile( int fd, void* buf, size_t numBytes ) { return _read( fd, buf, (unsigned int)numBytes ); @@ -168,6 +178,17 @@ void CcpCloseFile( int fd ) close( fd ); } +bool CcpTruncateFile( const std::wstring& filename ) +{ + int fd = CcpCreateFile( filename.c_str(), CCP_SM_RWSHARING ); + if( fd < 0 ) + { + return false; + } + CcpCloseFile( fd ); + return true; +} + ssize_t CcpReadFromFile( int fd, void* buf, size_t numBytes ) { return read( fd, buf, (unsigned int)numBytes ); diff --git a/include/CcpFileUtils.h b/include/CcpFileUtils.h index ec729af..33fc88d 100644 --- a/include/CcpFileUtils.h +++ b/include/CcpFileUtils.h @@ -54,6 +54,7 @@ CARBON_CORE_API std::wstring CcpExecutablePath(); CARBON_CORE_API int CcpOpenFile( const wchar_t* filename, CcpOpenMode mode, CcpShareMode shareMode ); CARBON_CORE_API int CcpCreateFile( const wchar_t* filename, CcpShareMode shareMode ); CARBON_CORE_API void CcpCloseFile( int fd ); +CARBON_CORE_API bool CcpTruncateFile( const std::wstring& filename ); CARBON_CORE_API ssize_t CcpReadFromFile( int fd, void* buf, size_t numBytes ); CARBON_CORE_API ssize_t CcpWriteToFile( int fd, const void* buf, size_t numBytes ); CARBON_CORE_API off_t CcpLseek( int fd, off_t offset, int whence );