1
0
Fork 0
mirror of https://git.tukaani.org/xz.git synced 2024-04-04 12:36:23 +02:00

Select the default integrity check type at runtime.

Previously it was set statically to CRC64 or CRC32
depending on options passed to the configure script.
This commit is contained in:
Lasse Collin 2010-01-31 19:52:38 +02:00
parent 96a4f840e3
commit 34eb5e201d

View file

@ -56,17 +56,17 @@ static bool preset_default = true;
static bool preset_extreme = false; static bool preset_extreme = false;
/// Integrity check type /// Integrity check type
#ifdef HAVE_CHECK_CRC64 static lzma_check check;
static lzma_check check = LZMA_CHECK_CRC64;
#else /// This becomes false if the --check=CHECK option is used.
static lzma_check check = LZMA_CHECK_CRC32; static bool check_default = true;
#endif
extern void extern void
coder_set_check(lzma_check new_check) coder_set_check(lzma_check new_check)
{ {
check = new_check; check = new_check;
check_default = false;
return; return;
} }
@ -265,6 +265,15 @@ coder_set_compression_settings(void)
opt_threads = thread_limit; opt_threads = thread_limit;
*/ */
if (check_default) {
// The default check type is CRC64, but fallback to CRC32
// if CRC64 isn't supported by the copy of liblzma we are
// using. CRC32 is always supported.
check = LZMA_CHECK_CRC64;
if (!lzma_check_is_supported(check))
check = LZMA_CHECK_CRC32;
}
return; return;
} }