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-e03cc46cb475master
parent
1756e4700d
commit
1a98841268
|
@ -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.
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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_;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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_;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue