replace "<" in FLUSH with "&"
authorMoritz Hanke <hanke@dkrz.de>
Tue, 9 Sep 2014 15:10:59 +0000 (17:10 +0200)
committerMathis Rosenhauer <rosenhauer@dkrz.de>
Fri, 24 Oct 2014 14:08:27 +0000 (16:08 +0200)
src/decode.c

index 22487fd..3a25e6e 100644 (file)
                   d = *bp;                                              \
                   half_d = (d >> 1) + (d & 1);                          \
                                                                         \
-                  if (data < med) {                                     \
-                      if (half_d <= data) {                             \
+                  /*in this case: data >= med == data & med */          \
+                  if (data & med) {                                     \
+                      /*in this case: xmax - data == xmax ^ data */     \
+                      if (half_d <= (xmax ^ data)) {                    \
                           data += (d >> 1)^(~((d & 1) - 1));            \
                       } else {                                          \
-                          data = d;                                     \
+                          data = xmax ^ d;                              \
                       }                                                 \
                   } else {                                              \
-                      /*in this case (xmax - data == xmax ^ data)*/     \
-                      if (half_d <= (xmax ^ data)) {                    \
+                      if (half_d <= data) {                             \
                           data += (d >> 1)^(~((d & 1) - 1));            \
                       } else {                                          \
-                          data = xmax ^ d;                              \
+                          data = d;                                     \
                       }                                                 \
                   }                                                     \
                   put_##KIND(strm, (uint32_t)data);                     \