]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Use Existing Src File Stat in `*_dstFile()` Funcs
authorW. Felix Handte <w@felixhandte.com>
Tue, 17 Jan 2023 22:08:22 +0000 (14:08 -0800)
committerW. Felix Handte <w@felixhandte.com>
Tue, 17 Jan 2023 22:08:22 +0000 (14:08 -0800)
One fewer `stat()` call to make per operation!

programs/fileio.c
tests/cli-tests/file-stat/compress-file-to-file.sh.stderr.exact
tests/cli-tests/file-stat/decompress-file-to-file.sh.stderr.exact

index 9122a1036ea75ad75ffe676a1dec5febbba24219..2067cfcda17ea4c99d459a2896ce290b4269c5d2 100644 (file)
@@ -1631,20 +1631,16 @@ static int FIO_compressFilename_dstFile(FIO_ctx_t* const fCtx,
 {
     int closeDstFile = 0;
     int result;
-    stat_t statbuf;
     int transferMTime = 0;
     FILE *dstFile;
 
-    (void)srcFileStat;
-
     assert(AIO_ReadPool_getFile(ress.readCtx) != NULL);
     if (AIO_WritePool_getFile(ress.writeCtx) == NULL) {
         int dstFilePermissions = DEFAULT_FILE_PERMISSIONS;
         if ( strcmp (srcFileName, stdinmark)
           && strcmp (dstFileName, stdoutmark)
-          && UTIL_stat(srcFileName, &statbuf)
-          && UTIL_isRegularFileStat(&statbuf) ) {
-            dstFilePermissions = statbuf.st_mode;
+          && UTIL_isRegularFileStat(srcFileStat) ) {
+            dstFilePermissions = srcFileStat->st_mode;
             transferMTime = 1;
         }
 
@@ -1671,7 +1667,7 @@ static int FIO_compressFilename_dstFile(FIO_ctx_t* const fCtx,
             result=1;
         }
         if (transferMTime) {
-            UTIL_utime(dstFileName, &statbuf);
+            UTIL_utime(dstFileName, srcFileStat);
         }
         if ( (result != 0)  /* operation failure */
           && strcmp(dstFileName, stdoutmark)  /* special case : don't remove() stdout */
@@ -2474,7 +2470,6 @@ static int FIO_decompressDstFile(FIO_ctx_t* const fCtx,
                                  const stat_t* srcFileStat)
 {
     int result;
-    stat_t statbuf;
     int releaseDstFile = 0;
     int transferMTime = 0;
 
@@ -2485,9 +2480,8 @@ static int FIO_decompressDstFile(FIO_ctx_t* const fCtx,
         int dstFilePermissions = DEFAULT_FILE_PERMISSIONS;
         if ( strcmp(srcFileName, stdinmark)   /* special case : don't transfer permissions from stdin */
           && strcmp(dstFileName, stdoutmark)
-          && UTIL_stat(srcFileName, &statbuf)
-          && UTIL_isRegularFileStat(&statbuf) ) {
-            dstFilePermissions = statbuf.st_mode;
+          && UTIL_isRegularFileStat(srcFileStat) ) {
+            dstFilePermissions = srcFileStat->st_mode;
             transferMTime = 1;
         }
 
@@ -2514,7 +2508,7 @@ static int FIO_decompressDstFile(FIO_ctx_t* const fCtx,
         }
 
         if (transferMTime) {
-            UTIL_utime(dstFileName, &statbuf);
+            UTIL_utime(dstFileName, srcFileStat);
         }
 
         if ( (result != 0)  /* operation failure */
index 34bb704c7d5b259066d97bd7d2b7e92a5febd473..7297894c712671378fce184b78785999e47b35e5 100644 (file)
@@ -12,8 +12,6 @@ Trace:FileStat:  < 1
 Trace:FileStat: < 0
 Trace:FileStat: > UTIL_stat(file)
 Trace:FileStat: < 1
-Trace:FileStat: > UTIL_stat(file)
-Trace:FileStat: < 1
 Trace:FileStat: > UTIL_isSameFile(file, file.zst)
 Trace:FileStat:  > UTIL_stat(file)
 Trace:FileStat:  < 1
index a2d7ad282e0db611984fe21c02507041821e4504..2af60eb4336dea4f9365c95c304ce615c8132c43 100644 (file)
@@ -10,8 +10,6 @@ Trace:FileStat:  < 1
 Trace:FileStat: < 0
 Trace:FileStat: > UTIL_stat(file.zst)
 Trace:FileStat: < 1
-Trace:FileStat: > UTIL_stat(file.zst)
-Trace:FileStat: < 1
 Trace:FileStat: > UTIL_isSameFile(file.zst, file)
 Trace:FileStat:  > UTIL_stat(file.zst)
 Trace:FileStat:  < 1