From 6d2df6addcf32ce4b229804dabbb0b5abb003e71 Mon Sep 17 00:00:00 2001 From: "Marco Antonio J. Costa" Date: Wed, 22 Jul 2026 12:21:58 -0300 Subject: [PATCH] let FileWrite take a source buffer it will not write to FileWrite took its source as PTR, a mutable void*, though it only reads it: the buffer goes straight to vfs::tWritableFile::write, which takes a const vfs::Byte*. STIConvert.cpp pads a file a byte at a time with FileWrite(hFile, "", 1, NULL); and a string literal is a const char[1], which PTR cannot hold. Declaring the parameter const void* matches what the function does and what the layer below it already asks for. The cast inside becomes const as well. None of the 431 calls change: every pointer, const or not, converts to const void*. JA2EncryptedFileWrite and NewJA2EncryptedFileWrite have the same shape but transform the buffer on the way out, so they keep PTR. Verification: ninja -C build parse # STIConvert.cpp clean ninja -C build -k 0 # Release, four applications, green ninja -C build-debug -k 0 # Debug, four applications, green Co-Authored-By: Claude Opus 4.8 --- sgp/FileMan.cpp | 4 ++-- sgp/FileMan.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sgp/FileMan.cpp b/sgp/FileMan.cpp index c141ddf11..1f153fe70 100644 --- a/sgp/FileMan.cpp +++ b/sgp/FileMan.cpp @@ -491,7 +491,7 @@ BOOLEAN FileReadLine( HWFILE hFile, std::string* pDest ) // //************************************************************************** -BOOLEAN FileWrite( HWFILE hFile, PTR pDest, UINT32 uiBytesToWrite, UINT32 *puiBytesWritten ) +BOOLEAN FileWrite( HWFILE hFile, const void* pDest, UINT32 uiBytesToWrite, UINT32 *puiBytesWritten ) { if(uiBytesToWrite == 0)//dnl ch38 110909 { @@ -507,7 +507,7 @@ BOOLEAN FileWrite( HWFILE hFile, PTR pDest, UINT32 uiBytesToWrite, UINT32 *puiBy UINT32 uiBytesWritten; try { - uiBytesWritten = pWF->write((vfs::Byte*)pDest, uiBytesToWrite); + uiBytesWritten = pWF->write((const vfs::Byte*)pDest, uiBytesToWrite); } catch(std::exception& ex) { diff --git a/sgp/FileMan.h b/sgp/FileMan.h index 251749b44..dbc510727 100644 --- a/sgp/FileMan.h +++ b/sgp/FileMan.h @@ -90,7 +90,7 @@ extern void FileClose( HWFILE ); extern BOOLEAN FileRead( HWFILE hFile, PTR pDest, UINT32 uiBytesToRead, UINT32 *puiBytesRead ); extern BOOLEAN FileReadLine( HWFILE hFile, std::string* pDest ); -extern BOOLEAN FileWrite( HWFILE hFile, PTR pDest, UINT32 uiBytesToWrite, UINT32 *puiBytesWritten ); +extern BOOLEAN FileWrite( HWFILE hFile, const void* pDest, UINT32 uiBytesToWrite, UINT32 *puiBytesWritten ); extern BOOLEAN FileLoad( STR filename, PTR pDest, UINT32 uiBytesToRead, UINT32 *puiBytesRead ); extern BOOLEAN _cdecl FilePrintf( HWFILE hFile, STR8 strFormatted, ... );