TurboPFor: Variable byte encode/decode
This commit is contained in:
4
vint.c
4
vint.c
@ -277,11 +277,11 @@ uint_t TEMPLATE2(VBDGETX, USIZE)(unsigned char *__restrict in, unsigned idx, ui
|
|||||||
|
|
||||||
unsigned TEMPLATE2(VBDGETGEQ, USIZE)(unsigned char **__restrict in, unsigned n, unsigned idx, uint_t *key, uint_t start ) {
|
unsigned TEMPLATE2(VBDGETGEQ, USIZE)(unsigned char **__restrict in, unsigned n, unsigned idx, uint_t *key, uint_t start ) {
|
||||||
unsigned i=0;
|
unsigned i=0;
|
||||||
unsigned char *ip;
|
unsigned char *ip=*in;
|
||||||
uint_t x;
|
uint_t x;
|
||||||
#if USIZE < 64
|
#if USIZE < 64
|
||||||
if(!idx) {
|
if(!idx) {
|
||||||
unsigned long long u; _vbget64(in, u, ;); x = u>>1; start += x+1;
|
unsigned long long u; _vbget64(ip, u, ;); x = u>>1; start += x+1;
|
||||||
if((u & 1) && start == *key) { *in = ip; return 0; }
|
if((u & 1) && start == *key) { *in = ip; return 0; }
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user