From 7238cca1a1f00b27570b721b852317dfcfbffa72 Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Wed, 5 Aug 2020 01:08:34 -0400 Subject: [PATCH] Deduplicate Some Low-Hanging Fruit of Redundant Stat Calls --- programs/fileio.c | 7 ++++--- programs/util.c | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index e818614b..0633d39d 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -519,6 +519,7 @@ static int FIO_remove(const char* path) * @result : FILE* to `srcFileName`, or NULL if it fails */ static FILE* FIO_openSrcFile(const char* srcFileName) { + stat_t statbuf; assert(srcFileName != NULL); if (!strcmp (srcFileName, stdinmark)) { DISPLAYLEVEL(4,"Using stdin for input \n"); @@ -526,14 +527,14 @@ static FILE* FIO_openSrcFile(const char* srcFileName) return stdin; } - if (!UTIL_fileExist(srcFileName)) { + if (!UTIL_stat(srcFileName, &statbuf)) { DISPLAYLEVEL(1, "zstd: can't stat %s : %s -- ignored \n", srcFileName, strerror(errno)); return NULL; } - if (!UTIL_isRegularFile(srcFileName) - && !UTIL_isFIFO(srcFileName) + if (!UTIL_isRegularFileStat(&statbuf) + && !UTIL_isFIFOStat(&statbuf) ) { DISPLAYLEVEL(1, "zstd: %s is not a regular file -- ignored \n", srcFileName); diff --git a/programs/util.c b/programs/util.c index c81587b4..69b93b8d 100644 --- a/programs/util.c +++ b/programs/util.c @@ -354,11 +354,12 @@ UTIL_createFileNamesTable_fromFileName(const char* inputFileName) char* buf; size_t bufSize; size_t pos = 0; + stat_t statbuf; - if (!UTIL_fileExist(inputFileName) || !UTIL_isRegularFile(inputFileName)) + if (!UTIL_stat(inputFileName, &statbuf) || !UTIL_isRegularFileStat(&statbuf)) return NULL; - { U64 const inputFileSize = UTIL_getFileSize(inputFileName); + { U64 const inputFileSize = UTIL_getFileSizeStat(&statbuf); if(inputFileSize > MAX_FILE_OF_FILE_NAMES_SIZE) return NULL; bufSize = (size_t)(inputFileSize + 1); /* (+1) to add '\0' at the end of last filename */