From: Steinar H. Gunderson Date: Thu, 2 Mar 2006 13:26:48 +0000 (+0000) Subject: Flip the extra-parity checks in the double-bit code checking code again; it appears... X-Git-Url: https://git.sesse.net/?p=hamming;a=commitdiff_plain;h=fb9bc5893a549544f90236a03ab5b5857b53afd7 Flip the extra-parity checks in the double-bit code checking code again; it appears to actually work now. --- diff --git a/hamming32.c b/hamming32.c index 69619c6..a277253 100644 --- a/hamming32.c +++ b/hamming32.c @@ -79,15 +79,15 @@ int has_double_error(unsigned code) unsigned extra_parity = find_parity_32(code); /* no errors at all (user should have used has_error() first; boo, hiss) */ - if (hamming_parity == gen_hamming_parity && extra_parity == 1) + if (hamming_parity == gen_hamming_parity && extra_parity == 0) return 0; /* both hamming and simple parity errors; this is a single-bit error */ - if (hamming_parity != gen_hamming_parity && extra_parity == 0) + if (hamming_parity != gen_hamming_parity && extra_parity == 1) return 0; /* hamming says OK, but simple parity indicates an error => simple parity error is wrong */ - if (hamming_parity == gen_hamming_parity && extra_parity == 0) + if (hamming_parity == gen_hamming_parity && extra_parity == 1) return 0; /* hamming says error, simple parity says OK => DOUBLE ERROR */