fix(fileio): guard ratio progress display against divide-by-zero on empty input

This commit is contained in:
rootkiller6788 2026-08-21 14:43:25 +08:00
parent 82d322c497
commit 968a1a097a

View file

@ -1541,12 +1541,12 @@ FIO_compressGzFrame(cRess_t* ress,
DISPLAYUPDATE_PROGRESS(
"\rRead : %u MB ==> %.2f%% ",
(unsigned)(inFileSize>>20),
(double)outFileSize/(double)inFileSize*100)
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0)
} else {
DISPLAYUPDATE_PROGRESS(
"\rRead : %u / %u MB ==> %.2f%% ",
(unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20),
(double)outFileSize/(double)inFileSize*100);
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0);
} }
while (1) {
@ -1635,11 +1635,11 @@ FIO_compressLzmaFrame(cRess_t* ress,
if (srcFileSize == UTIL_FILESIZE_UNKNOWN)
DISPLAYUPDATE_PROGRESS("\rRead : %u MB ==> %.2f%%",
(unsigned)(inFileSize>>20),
(double)outFileSize/(double)inFileSize*100)
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0)
else
DISPLAYUPDATE_PROGRESS("\rRead : %u / %u MB ==> %.2f%%",
(unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20),
(double)outFileSize/(double)inFileSize*100);
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0);
if (ret == LZMA_STREAM_END) break;
}
@ -1718,11 +1718,11 @@ FIO_compressLz4Frame(cRess_t* ress,
if (srcFileSize == UTIL_FILESIZE_UNKNOWN) {
DISPLAYUPDATE_PROGRESS("\rRead : %u MB ==> %.2f%%",
(unsigned)(inFileSize>>20),
(double)outFileSize/(double)inFileSize*100)
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0)
} else {
DISPLAYUPDATE_PROGRESS("\rRead : %u / %u MB ==> %.2f%%",
(unsigned)(inFileSize>>20), (unsigned)(srcFileSize>>20),
(double)outFileSize/(double)inFileSize*100);
inFileSize ? (double)outFileSize/(double)inFileSize*100 : 0);
}
FIO_SyncCompressIO_commitOut(syncIO, syncIO->outBuffer, outSize);