Patch 2358908 by StrontiumDog with some changes.

This patch fix some more warnings. Most of them
being warnings about unused fread/fwrite results.
Instead of just discarding the result, the number of
read/write is stored in the variable and can be use
to know if there was a problem in the fread/fwrite calls.
(also change the variable names to elems_ instead of
bytes_ as the function returns the number of items not the
number of bytes).
This commit is contained in:
yabause 2008-11-29 14:29:07 +00:00
parent 3316d1e0b4
commit df1e0d6737
8 changed files with 148 additions and 134 deletions

View File

@ -606,6 +606,7 @@ int NDS_WriteBMP(const char *filename)
FILE *file;
int i,j;
u16 * bmp = (u16 *)GPU_screen;
size_t elems_written = 0;
memset(&fileheader, 0, sizeof(fileheader));
fileheader.size = sizeof(fileheader);
@ -624,8 +625,8 @@ int NDS_WriteBMP(const char *filename)
if ((file = fopen(filename,"wb")) == NULL)
return 0;
fwrite(&fileheader, 1, sizeof(fileheader), file);
fwrite(&imageheader, 1, sizeof(imageheader), file);
elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file);
elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file);
for(j=0;j<192*2;j++)
{
@ -641,9 +642,9 @@ int NDS_WriteBMP(const char *filename)
r*=255/31;
g*=255/31;
b*=255/31;
fwrite(&r, 1, sizeof(u8), file);
fwrite(&g, 1, sizeof(u8), file);
fwrite(&b, 1, sizeof(u8), file);
elems_written += fwrite(&r, 1, sizeof(u8), file);
elems_written += fwrite(&g, 1, sizeof(u8), file);
elems_written += fwrite(&b, 1, sizeof(u8), file);
}
}
fclose(file);
@ -656,7 +657,7 @@ int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char
bmpfileheader_struct fileheader;
bmpimgheader_struct imageheader;
FILE *file;
size_t elems_written = 0;
memset(&fileheader, 0, sizeof(fileheader));
fileheader.size = sizeof(fileheader);
fileheader.id = 'B' | ('M' << 8);
@ -674,10 +675,10 @@ int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char
if ((file = fopen(filename,"wb")) == NULL)
return 0;
fwrite(&fileheader, 1, sizeof(fileheader), file);
fwrite(&imageheader, 1, sizeof(imageheader), file);
elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file);
elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file);
fwrite(buf,1,imageheader.imgsize,file);
elems_written += fwrite(buf,1,imageheader.imgsize,file);
fclose(file);
return 1;

View File

@ -961,7 +961,7 @@ static void Render()
//TODO - properly doublebuffer the display lists
{
u32 lastTextureFormat, lastTexturePalette, lastPolyAttr;
u32 lastTextureFormat = 0, lastTexturePalette = 0, lastPolyAttr = 0;
for(int i=0;i<gfx3d.polylist->count;i++) {
POLY *poly = &gfx3d.polylist->list[gfx3d.indexlist[i]];

View File

@ -1216,6 +1216,7 @@ int SNDFileInit(int buffersize)
waveheader_struct waveheader;
fmt_struct fmt;
chunk_struct data;
size_t elems_written = 0;
if ((spufp = fopen("ndsaudio.wav", "wb")) == NULL)
return -1;
@ -1224,7 +1225,7 @@ int SNDFileInit(int buffersize)
memcpy(waveheader.riff.id, "RIFF", 4);
waveheader.riff.size = 0; // we'll fix this after the file is closed
memcpy(waveheader.rifftype, "WAVE", 4);
fwrite((void *)&waveheader, 1, sizeof(waveheader_struct), spufp);
elems_written += fwrite((void *)&waveheader, 1, sizeof(waveheader_struct), spufp);
// fmt chunk
memcpy(fmt.chunk.id, "fmt ", 4);
@ -1235,12 +1236,12 @@ int SNDFileInit(int buffersize)
fmt.bitspersample = 16;
fmt.blockalign = fmt.bitspersample / 8 * fmt.numchan;
fmt.bytespersec = fmt.rate * fmt.blockalign;
fwrite((void *)&fmt, 1, sizeof(fmt_struct), spufp);
elems_written += fwrite((void *)&fmt, 1, sizeof(fmt_struct), spufp);
// data chunk
memcpy(data.id, "data", 4);
data.size = 0; // we'll fix this at the end
fwrite((void *)&data, 1, sizeof(chunk_struct), spufp);
elems_written += fwrite((void *)&data, 1, sizeof(chunk_struct), spufp);
return 0;
}
@ -1249,6 +1250,7 @@ int SNDFileInit(int buffersize)
void SNDFileDeInit()
{
size_t elems_written;
if (spufp)
{
long length = ftell(spufp);
@ -1256,11 +1258,11 @@ void SNDFileDeInit()
// Let's fix the riff chunk size and the data chunk size
fseek(spufp, sizeof(waveheader_struct)-0x8, SEEK_SET);
length -= 0x4;
fwrite((void *)&length, 1, 4, spufp);
elems_written += fwrite((void *)&length, 1, 4, spufp);
fseek(spufp, sizeof(waveheader_struct)+sizeof(fmt_struct)+0x4, SEEK_SET);
length -= sizeof(waveheader_struct)+sizeof(fmt_struct);
fwrite((void *)&length, 1, 4, spufp);
elems_written += fwrite((void *)&length, 1, 4, spufp);
fclose(spufp);
}
}
@ -1269,8 +1271,9 @@ void SNDFileDeInit()
void SNDFileUpdateAudio(s16 *buffer, u32 num_samples)
{
size_t elems_written;
if (spufp)
fwrite((void *)buffer, num_samples*2, 2, spufp);
elems_written = fwrite((void *)buffer, num_samples*2, 2, spufp);
}
//////////////////////////////////////////////////////////////////////////////

View File

@ -6687,7 +6687,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB_W()
TEMPLATE static u32 FASTCALL OP_LDMIA2()
{
u32 i = cpu->instruction;
u32 oldmode;
u32 oldmode = 0;
u32 c = 0;
@ -6744,7 +6744,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIA2()
TEMPLATE static u32 FASTCALL OP_LDMIB2()
{
u32 i = cpu->instruction;
u32 oldmode;
u32 oldmode = 0;
u32 c = 0;
u32 start = cpu->R[REG_POS(i,16)];
@ -6803,7 +6803,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDA2()
{
u32 i = cpu->instruction;
u32 oldmode;
u32 oldmode = 0;
u32 c = 0;
u32 * registres;
u32 * waitState;
@ -6866,7 +6866,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB2()
{
u32 i = cpu->instruction;
u32 oldmode;
u32 oldmode = 0;
u32 c = 0;
u32 * registres;
u32 * waitState;
@ -6928,7 +6928,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIA2_W()
u32 i = cpu->instruction;
u32 c = 0;
u32 oldmode;
u32 oldmode = 0;
u32 start = cpu->R[REG_POS(i,16)];
u32 * registres;
u32 * waitState;
@ -6985,7 +6985,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIB2_W()
u32 i = cpu->instruction;
u32 c = 0;
u32 oldmode;
u32 oldmode = 0;
u32 start = cpu->R[REG_POS(i,16)];
u32 * registres;
u32 * waitState;
@ -7044,7 +7044,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDA2_W()
u32 i = cpu->instruction;
u32 c = 0;
u32 oldmode;
u32 oldmode = 0;
u32 start = cpu->R[REG_POS(i,16)];
u32 * registres;
u32 * waitState;
@ -7104,7 +7104,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB2_W()
u32 i = cpu->instruction;
u32 c = 0;
u32 oldmode;
u32 oldmode = 0;
u32 start = cpu->R[REG_POS(i,16)];
u32 * registres;
u32 * waitState;

View File

@ -589,6 +589,7 @@ static void resolve_path(int dirent) {
/* Read from a file using a 512 byte buffer */
static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
char fname[2*NAME_LEN+EXT_LEN];
size_t elems_read = 0;
offset += cluster*512*SECPERCLUS;
@ -601,7 +602,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
return 0;
}
fseek(hFile, offset, SEEK_SET);
fread(&freadBuffer, 1, 512, hFile);
elems_read += fread(&freadBuffer, 1, 512, hFile);
bufferStart = offset;
}
@ -622,7 +623,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
if (!hFile) return 0;
bufferStart = offset;
fseek(hFile, offset, SEEK_SET);
fread(&freadBuffer, 1, 512, hFile);
elems_read += fread(&freadBuffer, 1, 512, hFile);
bufferStart = offset;
activeDirEnt = dirent;
@ -635,6 +636,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
unsigned int
cflash_read(unsigned int address) {
unsigned int ret_value = 0;
size_t elems_read;
#if 0 /* used by next if 0 block */
#define BUFFERED_BLOCK_SIZE 512
static u8 block_buffer[BUFFERED_BLOCK_SIZE];
@ -677,7 +679,7 @@ cflash_read(unsigned int address) {
data[1] = block_buffer[currLBA + 1 - buffered_start_index];
#else
LSEEK_FN( disk_image, currLBA, SEEK_SET);
READ_FN( disk_image, data, 2);
elems_read += READ_FN( disk_image, data, 2);
#endif
ret_value = data[1] << 8 |
data[0];
@ -697,13 +699,13 @@ cflash_read(unsigned int address) {
ret_value = T1ReadWord(p, currLBA);
// Reading the FAT
} else if ((currLBA >= filesysFAT*512) && (currLBA < filesysRootDir*512)) {
} else if (((u32)currLBA >= filesysFAT*512) && ((u32)currLBA < filesysRootDir*512)) {
p = (unsigned char*)&FAT16[0];
ret_value = T1ReadWord(p, currLBA - filesysFAT * 512);
// Reading directory entries
} else if ((currLBA >= filesysRootDir*512) &&
(cluster <= lastDirEntCluster)) {
} else if (((u32)currLBA >= filesysRootDir*512) &&
(cluster <= (u32)lastDirEntCluster)) {
cluster3 = ((currLBA - (SECRESV * 512)) / (512 * SECPERCLUS));
i = (currLBA-(((cluster3-(filesysRootDir/SECPERCLUS))*SECPERCLUS+filesysRootDir)*512)); //(currLBA - cluster*BYTESPERCLUS);
if (i < (dirEntriesInCluster[cluster3]*32)) {
@ -723,7 +725,7 @@ cflash_read(unsigned int address) {
}
}
// Reading file data
} else if ((cluster2 > lastDirEntCluster) && (cluster2 <= lastFileDataCluster)) { //else if ((cluster>lastDirEntCluster)&&(cluster<=lastFileDataCluster)) {
} else if ((cluster2 > (u32)lastDirEntCluster) && (cluster2 <= (u32)lastFileDataCluster)) { //else if ((cluster>lastDirEntCluster)&&(cluster<=lastFileDataCluster)) {
fileLBA = currLBA - (filesysData-32)*512; // 32 = # sectors used for the root entries
// Check if the read is from the currently opened file
@ -732,7 +734,7 @@ cflash_read(unsigned int address) {
ret_value = fread_buffered(activeDirEnt,cluster-dirEntries[activeDirEnt].startCluster,(fileLBA-fileStartLBA)&(BYTESPERCLUS-1));
} else {
for (i=0; i<numFiles; i++) {
if ((fileLBA>=(dirEntries[i].startCluster*512*SECPERCLUS)) &&
if ((fileLBA>=(u32)(dirEntries[i].startCluster*512*SECPERCLUS)) &&
(fileLBA <(dirEntries[i].startCluster*512*SECPERCLUS)+dirEntries[i].fileSize) &&
((dirEntries[i].attrib & (ATTRIB_DIR|ATTRIB_LFN))==0)) {
cluster = (fileLBA / (512 * SECPERCLUS));

View File

@ -47,6 +47,8 @@ typedef struct
int WriteBMP(const char *filename,u16 *bmp){
BmpFileHeader fileheader;
BmpImageHeader imageheader;
size_t elems_written = 0;
fileheader.size = 14;
fileheader.type = 0x4D42;
fileheader.r1 = 0;
@ -68,25 +70,23 @@ int WriteBMP(const char *filename,u16 *bmp){
FILE *fichier = fopen(filename,"wb");
if (!fichier)
return 0;
//fwrite(&fileheader, 1, 14, fichier);
//fwrite(&imageheader, 1, 40, fichier);
fwrite( &fileheader.type, sizeof(fileheader.type), 1, fichier);
fwrite( &fileheader.size, sizeof(fileheader.size), 1, fichier);
fwrite( &fileheader.r1, sizeof(fileheader.r1), 1, fichier);
fwrite( &fileheader.r2, sizeof(fileheader.r2), 1, fichier);
fwrite( &fileheader.data_offset, sizeof(fileheader.data_offset), 1, fichier);
fwrite( &imageheader.header_size, sizeof(imageheader.header_size), 1, fichier);
fwrite( &imageheader.width, sizeof(imageheader.width), 1, fichier);
fwrite( &imageheader.height, sizeof(imageheader.height), 1, fichier);
fwrite( &imageheader.r1, sizeof(imageheader.r1), 1, fichier);
fwrite( &imageheader.depth, sizeof(imageheader.depth), 1, fichier);
fwrite( &imageheader.r2, sizeof(imageheader.r2), 1, fichier);
fwrite( &imageheader.size, sizeof(imageheader.size), 1, fichier);
fwrite( &imageheader.r3, sizeof(imageheader.r3), 1, fichier);
fwrite( &imageheader.r4, sizeof(imageheader.r4), 1, fichier);
fwrite( &imageheader.r5, sizeof(imageheader.r5), 1, fichier);
fwrite( &imageheader.r6, sizeof(imageheader.r6), 1, fichier);
elems_written += fwrite( &fileheader.type, sizeof(fileheader.type), 1, fichier);
elems_written += fwrite( &fileheader.size, sizeof(fileheader.size), 1, fichier);
elems_written += fwrite( &fileheader.r1, sizeof(fileheader.r1), 1, fichier);
elems_written += fwrite( &fileheader.r2, sizeof(fileheader.r2), 1, fichier);
elems_written += fwrite( &fileheader.data_offset, sizeof(fileheader.data_offset), 1, fichier);
elems_written += fwrite( &imageheader.header_size, sizeof(imageheader.header_size), 1, fichier);
elems_written += fwrite( &imageheader.width, sizeof(imageheader.width), 1, fichier);
elems_written += fwrite( &imageheader.height, sizeof(imageheader.height), 1, fichier);
elems_written += fwrite( &imageheader.r1, sizeof(imageheader.r1), 1, fichier);
elems_written += fwrite( &imageheader.depth, sizeof(imageheader.depth), 1, fichier);
elems_written += fwrite( &imageheader.r2, sizeof(imageheader.r2), 1, fichier);
elems_written += fwrite( &imageheader.size, sizeof(imageheader.size), 1, fichier);
elems_written += fwrite( &imageheader.r3, sizeof(imageheader.r3), 1, fichier);
elems_written += fwrite( &imageheader.r4, sizeof(imageheader.r4), 1, fichier);
elems_written += fwrite( &imageheader.r5, sizeof(imageheader.r5), 1, fichier);
elems_written += fwrite( &imageheader.r6, sizeof(imageheader.r6), 1, fichier);
int i,j;
for(j=0;j<192*2;j++)for(i=0;i<256;i++){
u8 r,g,b;
@ -99,9 +99,9 @@ int WriteBMP(const char *filename,u16 *bmp){
r*=255/31;
g*=255/31;
b*=255/31;
fwrite(&r, 1, sizeof(char), fichier);
fwrite(&g, 1, sizeof(char), fichier);
fwrite(&b, 1, sizeof(char), fichier);
elems_written += fwrite(&r, 1, sizeof(char), fichier);
elems_written += fwrite(&g, 1, sizeof(char), fichier);
elems_written += fwrite(&b, 1, sizeof(char), fichier);
}
fclose(fichier);
return 1;

View File

@ -98,6 +98,8 @@ void mc_free(memory_chip_t *mc)
void mc_reset_com(memory_chip_t *mc)
{
size_t elems_written = 0;
if (mc->type == MC_TYPE_AUTODETECT && mc->com == BM_CMD_AUTODETECT)
{
u32 addr, size;
@ -175,14 +177,14 @@ void mc_reset_com(memory_chip_t *mc)
// Generate file
if ((mc->fp = fopen(mc->filename, "wb+")) != NULL)
fwrite((void *)mc->data, 1, mc->size, mc->fp);
elems_written += fwrite((void *)mc->data, 1, mc->size, mc->fp);
}
else if (mc->com == BM_CMD_WRITELOW)
{
if (mc->fp)
{
fseek(mc->fp, 0, SEEK_SET);
fwrite((void *)mc->data, 1, mc->size, mc->fp); // fix me
elems_written += fwrite((void *)mc->data, 1, mc->size, mc->fp); // fix me
}
mc->write_enable = FALSE;
}
@ -202,6 +204,8 @@ void mc_load_file(memory_chip_t *mc, const char* filename)
long size;
int type = -1;
FILE* file = fopen(filename, "rb+");
size_t elems_read;
if(file == NULL)
{
mc->filename = strdup(filename);
@ -231,9 +235,9 @@ void mc_load_file(memory_chip_t *mc, const char* filename)
mc_realloc(mc, type, size);
}
if (size > mc->size)
if ((u32)size > mc->size)
size = mc->size;
fread (mc->data, 1, size, file);
elems_read = fread (mc->data, 1, size, file);
mc->fp = file;
}
@ -243,6 +247,7 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
int type = -1;
char id[16];
FILE* file = fopen(filename, "rb");
size_t elems_read = 0;
if(file == NULL)
return 0;
@ -251,7 +256,7 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
fseek(file, 0, SEEK_SET);
// Make sure we really have the right file
fread((void *)id, sizeof(char), 16, file);
elems_read += fread((void *)id, sizeof(char), 16, file);
if (memcmp(id, "ARDS000000000001", 16) != 0)
{
@ -279,11 +284,11 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
mc_realloc(mc, type, size);
}
if (size > mc->size)
if ((u32)size > mc->size)
size = mc->size;
// Skip the rest of the header since we don't need it
fseek(file, 500, SEEK_SET);
fread (mc->data, 1, size, file);
elems_read += fread (mc->data, 1, size, file);
fclose(file);
return 1;

View File

@ -454,12 +454,13 @@ void sram_write (u32 address, u8 value) {
int sram_load (const char *file_name) {
FILE *file;
size_t elems_read;
file = fopen ( file_name, "rb" );
if( file == NULL )
return 0;
fread ( MMU.CART_RAM, SRAM_SIZE, 1, file );
elems_read = fread ( MMU.CART_RAM, SRAM_SIZE, 1, file );
fclose ( file );
@ -470,12 +471,13 @@ int sram_load (const char *file_name) {
int sram_save (const char *file_name) {
FILE *file;
size_t elems_written;
file = fopen ( file_name, "wb" );
if( file == NULL )
return 0;
fwrite ( MMU.CART_RAM, SRAM_SIZE, 1, file );
elems_written = fwrite ( MMU.CART_RAM, SRAM_SIZE, 1, file );
fclose ( file );
@ -687,6 +689,7 @@ static bool savestate_save(std::ostream* outstream, int compressionLevel)
bool savestate_save (const char *file_name)
{
memorystream ms;
size_t elems_written;
#ifdef HAVE_LIBZ
if(!savestate_save(&ms, Z_DEFAULT_COMPRESSION))
#else
@ -697,9 +700,9 @@ bool savestate_save (const char *file_name)
FILE* file = fopen(file_name,"wb");
if(file)
{
fwrite(ms.buf(),1,ms.size(),file);
elems_written = fwrite(ms.buf(),1,ms.size(),file);
fclose(file);
return true;
return (elems_written == ms.size());
} else return false;
}