]> git.sesse.net Git - plocate/blobdiff - turbopfor-encode.h
Implement support for larger basevals in TurboPFor.
[plocate] / turbopfor-encode.h
index e6e3cd5f13129767fef24bda95420b5cf1be9c35..9341efc0b7f4c23552f29dbd115bac508eb6cc1d 100644 (file)
@@ -52,6 +52,12 @@ unsigned char *write_baseval(Docid in, unsigned char *out)
                out[1] = in & 0xff;
                out[2] = (in >> 8) & 0xff;
                return out + 3;
+       } else if (in < 0x10000000) {
+               out[0] = (in >> 24) | 0xe0;
+               out[1] = (in >> 16) & 0xff;
+               out[2] = (in >> 8) & 0xff;
+               out[3] = in & 0xff;
+               return out + 4;
        } else {
                assert(false);  // Not implemented.
        }