]> git.sesse.net Git - plocate/blobdiff - turbopfor.cpp
Implement support for larger basevals in TurboPFor.
[plocate] / turbopfor.cpp
index 8a91c33144d2843cf2d15d3277407bcb54066110..279a2f9cd9ec16a6920936f5f1081649a9964500 100644 (file)
@@ -74,6 +74,12 @@ const unsigned char *read_baseval(const unsigned char *in, Docid *out)
                        (uint32_t(in[2]) << 8) |
                        (uint32_t(in[1]))) & 0x1fffff;
                return in + 3;
+       } else if (*in < 240) {
+               *out = ((uint32_t(in[0]) << 24) |
+                       (uint32_t(in[1]) << 16) |
+                       (uint32_t(in[2]) << 8) |
+                       (uint32_t(in[3]))) & 0xfffffff;
+               return in + 4;
        } else {
                assert(false);  // Not implemented.
        }