Fixed crash on attempt to open non-existent file.

This commit is contained in:
rude
2010-02-03 20:48:58 +01:00
parent 160c8eee3b
commit 72efaa283f
2 changed files with 12 additions and 8 deletions
+4 -6
View File
@@ -50,14 +50,12 @@ namespace physfs
return true;
// File must exist if read mode.
if((mode == READ))
if(!PHYSFS_exists(filename.c_str()))
throw love::Exception("Could not open file %s. Does not exist.", filename.c_str());
if((mode == READ) && !PHYSFS_exists(filename.c_str()))
throw love::Exception("Could not open file %s. Does not exist.", filename.c_str());
// Check whether the write directory is set.
if((mode == APPEND || mode == WRITE) && (PHYSFS_getWriteDir() == 0))
if(!hack_setupWriteDirectory())
throw love::Exception("Could not set write directory.");
if((mode == APPEND || mode == WRITE) && (PHYSFS_getWriteDir() == 0) && !hack_setupWriteDirectory())
throw love::Exception("Could not set write directory.");
// File already open?
if(file != 0)
+8 -2
View File
@@ -49,7 +49,7 @@ namespace image
if(luax_istype(L, 1, DATA_T))
{
Data * d = luax_checktype<Data>(L, 1, "Data", DATA_T);
ImageData * t;
ImageData * t = 0;
try {
t = instance->newImageData(d);
} catch (love::Exception & e) {
@@ -66,7 +66,13 @@ namespace image
luax_convobj(L, 1, "filesystem", "newFile");
love::filesystem::File * file = luax_checktype<love::filesystem::File>(L, 1, "File", FILESYSTEM_FILE_T);
ImageData * t = instance->newImageData(file);
ImageData * t = 0;
try {
t = instance->newImageData(file);
} catch (love::Exception & e) {
return luaL_error(L, e.what());
}
luax_newtype(L, "ImageData", IMAGE_IMAGE_DATA_T, (void*)t);
return 1;
}