xz: Don't show a huge number in -vv when memory limit is disabled.

This commit is contained in:
Lasse Collin 2012-05-28 15:37:43 +03:00
parent ec92110572
commit 7769ea051d
1 changed files with 11 additions and 1 deletions

View File

@ -859,6 +859,17 @@ message_mem_needed(enum message_verbosity v, uint64_t memusage)
// the user might need to +1 MiB to get high enough limit.) // the user might need to +1 MiB to get high enough limit.)
memusage = round_up_to_mib(memusage); memusage = round_up_to_mib(memusage);
uint64_t memlimit = hardware_memlimit_get(opt_mode);
// Handle the case when there is no memory usage limit.
// This way we don't print a weird message with a huge number.
if (memlimit == UINT64_MAX) {
message(v, _("%s MiB of memory is required. "
"The limiter is disabled."),
uint64_to_str(memusage, 0));
return;
}
// With US-ASCII: // With US-ASCII:
// 2^64 with thousand separators + " MiB" suffix + '\0' = 26 + 4 + 1 // 2^64 with thousand separators + " MiB" suffix + '\0' = 26 + 4 + 1
// But there may be multibyte chars so reserve enough space. // But there may be multibyte chars so reserve enough space.
@ -867,7 +878,6 @@ message_mem_needed(enum message_verbosity v, uint64_t memusage)
// Show the memory usage limit as MiB unless it is less than 1 MiB. // Show the memory usage limit as MiB unless it is less than 1 MiB.
// This way it's easy to notice errors where one has typed // This way it's easy to notice errors where one has typed
// --memory=123 instead of --memory=123MiB. // --memory=123 instead of --memory=123MiB.
uint64_t memlimit = hardware_memlimit_get(opt_mode);
if (memlimit < (UINT32_C(1) << 20)) { if (memlimit < (UINT32_C(1) << 20)) {
snprintf(memlimitstr, sizeof(memlimitstr), "%s B", snprintf(memlimitstr, sizeof(memlimitstr), "%s B",
uint64_to_str(memlimit, 1)); uint64_to_str(memlimit, 1));