From: Lasse Collin Date: Sun, 7 Mar 2010 11:50:23 +0000 (+0200) Subject: Consistently round up the memory usage limit in messages. X-Git-Tag: upstream/5.1.3~327 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00fc1211ae7b687ac912098f4479112059deccbd;p=platform%2Fupstream%2Fxz.git Consistently round up the memory usage limit in messages. It still feels a bit wrong to round 1 byte to 1 MiB but at least it is now done consistently so that the same byte value is always rounded the same way to MiB. --- diff --git a/src/xz/message.c b/src/xz/message.c index 88efb0c..5dd9bc3 100644 --- a/src/xz/message.c +++ b/src/xz/message.c @@ -1016,7 +1016,8 @@ message_memlimit(void) printf("%" PRIu64 "\n", hardware_memlimit_get()); else printf(_("%s MiB (%s bytes)\n"), - uint64_to_str(hardware_memlimit_get() >> 20, 0), + uint64_to_str( + round_up_to_mib(hardware_memlimit_get()), 0), uint64_to_str(hardware_memlimit_get(), 1)); tuklib_exit(E_SUCCESS, E_ERROR, verbosity != V_SILENT); @@ -1180,7 +1181,7 @@ message_help(bool long_help) if (long_help) { printf(_( "On this system and configuration, this program will use a maximum of roughly\n" -"%s MiB RAM and "), uint64_to_str(hardware_memlimit_get() / (1024 * 1024), 0)); +"%s MiB RAM and "), uint64_to_str(round_up_to_mib(hardware_memlimit_get()), 0)); printf(N_("one thread.\n\n", "%s threads.\n\n", hardware_threadlimit_get()), uint64_to_str(hardware_threadlimit_get(), 0)); diff --git a/src/xzdec/xzdec.c b/src/xzdec/xzdec.c index 6ddf7d2..3b1ab0f 100644 --- a/src/xzdec/xzdec.c +++ b/src/xzdec/xzdec.c @@ -66,6 +66,10 @@ my_errorf(const char *fmt, ...) static void lzma_attribute((noreturn)) help(void) { + // Round up to the next MiB and do it correctly also with UINT64_MAX. + const uint64_t mem_mib = (memlimit >> 20) + + ((memlimit & ((UINT32_C(1) << 20) - 1)) != 0); + printf( "Usage: %s [OPTION]... [FILE]...\n" "Uncompress files in the ." TOOL_FORMAT " format to the standard output.\n" @@ -85,8 +89,7 @@ help(void) "%" PRIu64 " MiB RAM.\n" "\n" "Report bugs to <" PACKAGE_BUGREPORT "> (in English or Finnish).\n" -PACKAGE_NAME " home page: <" PACKAGE_URL ">\n", - progname, memlimit / (1024 * 1024)); +PACKAGE_NAME " home page: <" PACKAGE_URL ">\n", progname, mem_mib); tuklib_exit(EXIT_SUCCESS, EXIT_FAILURE, display_errors); }