sdl: fixed segfault when loadstating 0-9 when state did not exist

This commit is contained in:
punkrockguy318 2010-07-20 01:58:13 +00:00
parent 29cffedbbf
commit f4535346fb
1 changed files with 14 additions and 0 deletions

View File

@ -890,6 +890,15 @@ void FCEUI_SaveState(const char *fname)
int loadStateFailed = 0; // hack, this function should return a value instead
bool file_exists(const char * filename)
{
if (FILE * file = fopen(filename, "r")) //I'm sure, you meant for READING =)
{
fclose(file);
return true;
}
return false;
}
void FCEUI_LoadState(const char *fname)
{
if(!FCEU_IsValidUI(FCEUI_LOADSTATE)) return;
@ -908,6 +917,11 @@ void FCEUI_LoadState(const char *fname)
{
FCEUI_MakeBackupMovie(false); //Backup the movie before the contents get altered, but do not display messages
}
if (!file_exists(fname))
{
loadStateFailed = 1;
return; // state doesn't exist; exit cleanly
}
if(FCEUSS_Load(fname))
{
//mbg todo netplay