Wrapped fopen/close/read/write functions inside a simple "IOFile" class. Reading, writing, and error checking became simpler in most cases. It should be near impossible to forget to close a file now that the destructor takes care of it. (I hope this fixes Issue 3635) I have tested the functionality of most things, but it is possible I broke something. :p

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7328 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Jordan Woyak
2011-03-11 10:21:46 +00:00
parent 4f69672b2b
commit 59fd1008ca
68 changed files with 1112 additions and 1154 deletions

View File

@ -101,7 +101,7 @@ bool CFileSystemGCWii::ExportFile(const char* _rFullPath, const char* _rExportFi
u64 remainingSize = pFileInfo->m_FileSize;
u64 fileOffset = pFileInfo->m_Offset;
FILE* f = fopen(_rExportFilename, "wb");
File::IOFile f(_rExportFilename, "wb");
if (!f)
return false;
@ -122,7 +122,7 @@ bool CFileSystemGCWii::ExportFile(const char* _rFullPath, const char* _rExportFi
break;
}
fwrite(buffer, readSize, 1, f);
f.WriteBytes(buffer, readSize);
remainingSize -= readSize;
fileOffset += readSize;
@ -130,8 +130,6 @@ bool CFileSystemGCWii::ExportFile(const char* _rFullPath, const char* _rExportFi
delete[] buffer;
}
fclose(f);
return result;
}
@ -147,11 +145,11 @@ bool CFileSystemGCWii::ExportApploader(const char* _rExportFolder) const
{
char exportName[512];
sprintf(exportName, "%s/apploader.img", _rExportFolder);
FILE* AppFile = fopen(exportName, "wb");
File::IOFile AppFile(exportName, "wb");
if (AppFile)
{
fwrite(buffer, AppSize, 1, AppFile);
fclose(AppFile);
AppFile.WriteBytes(buffer, AppSize);
delete[] buffer;
return true;
}
@ -189,11 +187,10 @@ bool CFileSystemGCWii::ExportDOL(const char* _rExportFolder) const
{
char exportName[512];
sprintf(exportName, "%s/boot.dol", _rExportFolder);
FILE* DolFile = fopen(exportName, "wb");
File::IOFile DolFile(exportName, "wb");
if (DolFile)
{
fwrite(buffer, DolSize, 1, DolFile);
fclose(DolFile);
DolFile.WriteBytes(buffer, DolSize);
delete[] buffer;
return true;
}