fix missing change from D1156950
authorPhilip Pronin <philipp@fb.com>
Thu, 6 Feb 2014 08:09:22 +0000 (00:09 -0800)
committerSara Golemon <sgolemon@fb.com>
Thu, 6 Feb 2014 19:50:14 +0000 (11:50 -0800)
Test Plan: fbconfig -r folly/experimental/test:eliasfano_test && fbmake runtests_opt

Reviewed By: lucian@fb.com

FB internal diff: D1161670

folly/experimental/EliasFanoCoding.h

index 228a2fc1fbb8872d9c01a6a3082abf069b67f9c2..c8e8e3cf07269d8abf2f589750047625c1abac73 100644 (file)
@@ -213,7 +213,12 @@ struct EliasFanoEncoder {
     /* static */ if (forwardQuantum != 0) {
       // Workaround to avoid 'division by zero' compile-time error.
       constexpr size_t q = forwardQuantum ?: 1;
-      CHECK_LT(upperSizeBits, std::numeric_limits<SkipValueType>::max());
+      /* static */ if (kVersion > 0) {
+        CHECK_LT(upperBound >> numLowerBits,
+                 std::numeric_limits<SkipValueType>::max());
+      } else {
+        CHECK_LT(upperSizeBits, std::numeric_limits<SkipValueType>::max());
+      }
 
       numForwardPointers = size / q;
       forwardPointers = static_cast<SkipValueType*>(