diff --git a/src/archiver_dir.c b/src/archiver_dir.c index e9eee89..18cb1bc 100644 --- a/src/archiver_dir.c +++ b/src/archiver_dir.c @@ -64,20 +64,21 @@ static PHYSFS_Io *doOpen(dvoid *opaque, const char *name, if (fileExists == NULL) fileExists = &existtmp; - *fileExists = 0; - BAIL_IF_MACRO(f == NULL, NULL, NULL); io = __PHYSFS_createNativeIo(f, mode); - allocator.Free(f); if (io == NULL) { PHYSFS_Stat statbuf; /* !!! FIXME: this changes the error message. */ __PHYSFS_platformStat(f, fileExists, &statbuf); - return NULL; } /* if */ + else + { + *fileExists = 1; + } /* else */ + + allocator.Free(f); - *fileExists = 1; return io; } /* doOpen */