fix crashes when files fail to open
This commit is contained in:
@@ -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 );
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user