Fix #619
This fixes handling of status codes from PHYSFS functions and seems to solve crashes like in #619master
parent
3335be42de
commit
a1d2ca50a8
|
@ -128,22 +128,22 @@ int CSDLFileWrapper::SDLSeek(SDL_RWops *context, int offset, int whence)
|
|||
default:
|
||||
case RW_SEEK_SET:
|
||||
{
|
||||
int result = PHYSFS_seek(file, offset);
|
||||
return result > 0 ? offset : -1;
|
||||
auto result = PHYSFS_seek(file, offset);
|
||||
return (result != 0) ? offset : -1;
|
||||
}
|
||||
|
||||
case RW_SEEK_CUR:
|
||||
{
|
||||
int position = offset + PHYSFS_tell(file);
|
||||
int result = PHYSFS_seek(file, position);
|
||||
return result > 0 ? position : -1;
|
||||
auto result = PHYSFS_seek(file, position);
|
||||
return (result != 0) ? position : -1;
|
||||
}
|
||||
|
||||
case RW_SEEK_END:
|
||||
{
|
||||
int position = PHYSFS_fileLength(file) - offset;
|
||||
int result = PHYSFS_seek(file, position);
|
||||
return result > 0 ? position : -1;
|
||||
auto result = PHYSFS_seek(file, position);
|
||||
return (result != 0) ? position : -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +158,8 @@ int CSDLFileWrapper::SDLRead(SDL_RWops *context, void *ptr, int size, int maxnum
|
|||
PHYSFS_File *file = static_cast<PHYSFS_File *>(context->hidden.unknown.data1);
|
||||
SDL_memset(ptr, 0, size * maxnum);
|
||||
|
||||
return PHYSFS_read(file, ptr, size, maxnum);
|
||||
auto result = PHYSFS_read(file, ptr, size, maxnum);
|
||||
return (result >= 0) ? result : 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue