fix crashes when files fail to open

This commit is contained in:
Glenn Maynard
2003-10-12 03:01:07 +00:00
parent 712289aa29
commit d3755f98a5
4 changed files with 17 additions and 2 deletions
+5 -1
View File
@@ -689,7 +689,11 @@ SoundReader_FileReader::OpenResult RageSoundReader_MP3::Open( CString filename_
{
filename = filename_;
rw = fopen(filename, "rb");
ASSERT( rw );
if( !rw )
{
SetError( ssprintf("Couldn't open file: %s", strerror(errno)) );
return OPEN_NO_MATCH;
}
int ret = fseek( this->rw, 0, SEEK_END );
ASSERT( ret != -1 );
+6 -1
View File
@@ -70,7 +70,7 @@ SoundReader_FileReader::OpenResult RageSoundReader_Vorbisfile::Open(CString file
if(f == NULL)
{
SetError(ssprintf("ogg fopen(%s) failed: %s", filename.c_str(), strerror(errno)));
return OPEN_MATCH_BUT_FAIL;
return OPEN_NO_MATCH;
}
int ret = ov_open(f, vf, NULL, 0);
@@ -208,6 +208,11 @@ int RageSoundReader_Vorbisfile::GetSampleRate() const
return vi->rate;
}
RageSoundReader_Vorbisfile::RageSoundReader_Vorbisfile()
{
vf = NULL;
}
RageSoundReader_Vorbisfile::~RageSoundReader_Vorbisfile()
{
if(vf)
@@ -21,6 +21,7 @@ public:
int SetPosition_Fast(int ms) { return SetPosition(ms, false); }
int Read(char *buf, unsigned len);
int GetSampleRate() const;
RageSoundReader_Vorbisfile();
~RageSoundReader_Vorbisfile();
SoundReader *Copy() const;
};
+5
View File
@@ -511,6 +511,11 @@ SoundReader_FileReader::OpenResult RageSoundReader_WAV::Open( CString filename_
Input_Buffer_Ratio = 1;
filename = filename_;
rw = fopen(filename, "rb");
if( !rw )
{
SetError( ssprintf("Couldn't open file: %s", strerror(errno)) );
return OPEN_NO_MATCH;
}
memset(&fmt, 0, sizeof(fmt));