zipmaps are now endianess agnostic, needed for on disk serialization of zipmaps without convertions layers
This commit is contained in:
parent
b5325132f1
commit
336c82d583
@ -25,7 +25,7 @@ PREFIX= /usr/local
|
|||||||
INSTALL_BIN= $(PREFIX)/bin
|
INSTALL_BIN= $(PREFIX)/bin
|
||||||
INSTALL= cp -p
|
INSTALL= cp -p
|
||||||
|
|
||||||
OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o dscache.o pubsub.o multi.o debug.o sort.o intset.o syncio.o diskstore.o
|
OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o dscache.o pubsub.o multi.o debug.o sort.o intset.o syncio.o diskstore.o endian.o
|
||||||
BENCHOBJ = ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o
|
BENCHOBJ = ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o
|
||||||
CLIOBJ = anet.o sds.o adlist.o redis-cli.o zmalloc.o release.o
|
CLIOBJ = anet.o sds.o adlist.o redis-cli.o zmalloc.o release.o
|
||||||
CHECKDUMPOBJ = redis-check-dump.o lzf_c.o lzf_d.o
|
CHECKDUMPOBJ = redis-check-dump.o lzf_c.o lzf_d.o
|
||||||
|
@ -16,3 +16,5 @@ void memrev64(void *p);
|
|||||||
#define memrev32ifbe(p) memrev32(p)
|
#define memrev32ifbe(p) memrev32(p)
|
||||||
#define memrev64ifbe(p) memrev64(p)
|
#define memrev64ifbe(p) memrev64(p)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -80,6 +80,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "zmalloc.h"
|
#include "zmalloc.h"
|
||||||
|
#include "endian.h"
|
||||||
|
|
||||||
#define ZIPMAP_BIGLEN 254
|
#define ZIPMAP_BIGLEN 254
|
||||||
#define ZIPMAP_END 255
|
#define ZIPMAP_END 255
|
||||||
@ -108,6 +109,7 @@ static unsigned int zipmapDecodeLength(unsigned char *p) {
|
|||||||
|
|
||||||
if (len < ZIPMAP_BIGLEN) return len;
|
if (len < ZIPMAP_BIGLEN) return len;
|
||||||
memcpy(&len,p+1,sizeof(unsigned int));
|
memcpy(&len,p+1,sizeof(unsigned int));
|
||||||
|
memrev32ifbe(&len);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +125,7 @@ static unsigned int zipmapEncodeLength(unsigned char *p, unsigned int len) {
|
|||||||
} else {
|
} else {
|
||||||
p[0] = ZIPMAP_BIGLEN;
|
p[0] = ZIPMAP_BIGLEN;
|
||||||
memcpy(p+1,&len,sizeof(len));
|
memcpy(p+1,&len,sizeof(len));
|
||||||
|
memrev32ifbe(p+1);
|
||||||
return 1+sizeof(len);
|
return 1+sizeof(len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user