IWriteFile::write now returning size_t.

Interface is now like fwrite (from standard c-lib). 
Also sizeToWrite parameter changed from u32 to size_t.


git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5334 dfc29bdd-3216-0410-991c-e03cc46cb475
master
cutealien 2016-09-08 20:31:15 +00:00
parent 1756e4700d
commit 1a98841268
12 changed files with 27 additions and 19 deletions

View File

@ -21,7 +21,7 @@ namespace io
/** \param buffer Pointer to buffer of bytes to write.
\param sizeToWrite Amount of bytes to write to the file.
\return How much bytes were written. */
virtual s32 write(const void* buffer, u32 sizeToWrite) = 0;
virtual size_t write(const void* buffer, size_t sizeToWrite) = 0;
//! Changes position in file
/** \param finalPos Destination position in the file.

View File

@ -105,7 +105,7 @@ bool CImageWriterBMP::writeImage(io::IWriteFile* file, IImage* image, u32 param)
u32 row_stride = (pixel_size * imageHeader.Width);
// length of one row in bytes, rounded up to nearest 4-byte boundary
s32 row_size = ((3 * imageHeader.Width) + 3) & ~3;
size_t row_size = ((3 * imageHeader.Width) + 3) & ~3;
// allocate and clear memory for our scan line
u8* row_pointer = new u8[row_size];

View File

@ -72,7 +72,7 @@ static boolean jpeg_empty_output_buffer(j_compress_ptr cinfo)
static void jpeg_term_destination(j_compress_ptr cinfo)
{
mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest;
const s32 datacount = (s32)(OUTPUT_BUF_SIZE - dest->pub.free_in_buffer);
const size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer;
// for now just exit upon file error
if (dest->file->write(dest->buffer, datacount) != datacount)
ERREXIT (cinfo, JERR_FILE_WRITE);

View File

@ -50,16 +50,22 @@ bool CImageWriterPPM::writeImage(io::IWriteFile *file, IImage *image, u32 param)
size = snprintf_irr(cache, 70, "P6\n");
else
size = snprintf_irr(cache, 70, "P3\n");
if ( size < 0 )
return false;
if (file->write(cache, size) != size)
if (file->write(cache, (size_t)size) != (size_t)size)
return false;
size = snprintf_irr(cache, 70, "%u %u\n", imageSize.Width, imageSize.Height);
if (file->write(cache, size) != size)
if ( size < 0 )
return false;
if (file->write(cache, (size_t)size) != (size_t)size)
return false;
size = snprintf_irr(cache, 70, "255\n");
if (file->write(cache, size) != size)
if ( size < 0 )
return false;
if (file->write(cache, (size_t)size) != (size_t)size)
return false;
if (binary)
@ -88,7 +94,9 @@ bool CImageWriterPPM::writeImage(io::IWriteFile *file, IImage *image, u32 param)
{
const video::SColor& pixel = image->getPixel(c, h);
size = snprintf_irr(cache, 70, "%.3u %.3u %.3u%s", pixel.getRed(), pixel.getGreen(), pixel.getBlue(), n % 5 == 4 ? "\n" : " ");
if (file->write(cache, size) != size)
if ( size < 0 )
return false;
if (file->write(cache, (size_t)size) != (size_t)size)
return false;
}
}

View File

@ -108,7 +108,7 @@ bool CImageWriterTGA::writeImage(io::IWriteFile *file, IImage *image,u32 param)
u32 row_stride = (pixel_size * imageHeader.ImageWidth);
// length of one output row in bytes
s32 row_size = ((imageHeader.PixelDepth / 8) * imageHeader.ImageWidth);
size_t row_size = ((imageHeader.PixelDepth / 8) * imageHeader.ImageWidth);
// allocate a row do translate data into
u8* row_pointer = new u8[row_size];

View File

@ -107,9 +107,9 @@ CMemoryWriteFile::~CMemoryWriteFile()
//! returns how much was written
s32 CMemoryWriteFile::write(const void* buffer, u32 sizeToWrite)
size_t CMemoryWriteFile::write(const void* buffer, size_t sizeToWrite)
{
s32 amount = static_cast<s32>(sizeToWrite);
long amount = (long)sizeToWrite;
if (Pos + amount > Len)
amount -= Pos + amount - Len;
@ -121,7 +121,7 @@ s32 CMemoryWriteFile::write(const void* buffer, u32 sizeToWrite)
Pos += amount;
return amount;
return (size_t)amount;
}

View File

@ -66,7 +66,7 @@ namespace io
virtual ~CMemoryWriteFile();
//! returns how much was written
virtual s32 write(const void* buffer, u32 sizeToWrite) _IRR_OVERRIDE_;
virtual size_t write(const void* buffer, size_t sizeToWrite) _IRR_OVERRIDE_;
//! changes position in file, returns true if successful
virtual bool seek(long finalPos, bool relativeMovement = false) _IRR_OVERRIDE_;

View File

@ -41,12 +41,12 @@ inline bool CWriteFile::isOpen() const
//! returns how much was read
s32 CWriteFile::write(const void* buffer, u32 sizeToWrite)
size_t CWriteFile::write(const void* buffer, size_t sizeToWrite)
{
if (!isOpen())
return 0;
return (s32)fwrite(buffer, 1, sizeToWrite, File);
return fwrite(buffer, 1, sizeToWrite, File);
}

View File

@ -27,7 +27,7 @@ namespace io
virtual ~CWriteFile();
//! Reads an amount of bytes from the file.
virtual s32 write(const void* buffer, u32 sizeToWrite) _IRR_OVERRIDE_;
virtual size_t write(const void* buffer, size_t sizeToWrite) _IRR_OVERRIDE_;
//! Changes position in file, returns true if successful.
virtual bool seek(long finalPos, bool relativeMovement = false) _IRR_OVERRIDE_;

View File

@ -97,7 +97,7 @@ bool writeImageToFile(void)
goto cleanup;
}
if (memoryFile->getPos() != writtenFile->write(buffer, memoryFile->getPos()))
if ((size_t)memoryFile->getPos() != writtenFile->write(buffer, (size_t)memoryFile->getPos()))
{
logTestString("Error while writing to %s.\n", writtenFilename);
assert_log(false);

View File

@ -13,7 +13,7 @@ CMemoryReadWriteFile::CMemoryReadWriteFile(const c8* filename)
}
s32 CMemoryReadWriteFile::write(const void* buffer, u32 sizeToWrite)
size_t CMemoryReadWriteFile::write(const void* buffer, size_t sizeToWrite)
{
// no point in writing 0 bytes
if (sizeToWrite < 1)
@ -24,7 +24,7 @@ s32 CMemoryReadWriteFile::write(const void* buffer, u32 sizeToWrite)
Data.set_used(Pos+sizeToWrite);
// copy data
memcpy( (void*) &Data[Pos], buffer, (size_t) sizeToWrite);
memcpy( (void*) &Data[Pos], buffer, sizeToWrite);
Pos += sizeToWrite;

View File

@ -27,7 +27,7 @@ namespace io
//! \param buffer: Pointer to buffer of bytes to write.
//! \param sizeToWrite: Amount of bytes to written to the file.
//! \return Returns how much bytes were written.
virtual s32 write(const void* buffer, u32 sizeToWrite);
virtual size_t write(const void* buffer, size_t sizeToWrite);
//! Changes position in file, returns true if successful.
//! \param finalPos: Destination position in the file.