mirror of https://github.com/redis/redis.git
				
				
				
			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= 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
 | 
			
		||||
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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,3 +16,5 @@ void memrev64(void *p);
 | 
			
		|||
#define memrev32ifbe(p) memrev32(p)
 | 
			
		||||
#define memrev64ifbe(p) memrev64(p)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,6 +80,7 @@
 | 
			
		|||
#include <string.h>
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#include "zmalloc.h"
 | 
			
		||||
#include "endian.h"
 | 
			
		||||
 | 
			
		||||
#define ZIPMAP_BIGLEN 254
 | 
			
		||||
#define ZIPMAP_END 255
 | 
			
		||||
| 
						 | 
				
			
			@ -108,6 +109,7 @@ static unsigned int zipmapDecodeLength(unsigned char *p) {
 | 
			
		|||
 | 
			
		||||
    if (len < ZIPMAP_BIGLEN) return len;
 | 
			
		||||
    memcpy(&len,p+1,sizeof(unsigned int));
 | 
			
		||||
    memrev32ifbe(&len);
 | 
			
		||||
    return len;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +125,7 @@ static unsigned int zipmapEncodeLength(unsigned char *p, unsigned int len) {
 | 
			
		|||
        } else {
 | 
			
		||||
            p[0] = ZIPMAP_BIGLEN;
 | 
			
		||||
            memcpy(p+1,&len,sizeof(len));
 | 
			
		||||
            memrev32ifbe(p+1);
 | 
			
		||||
            return 1+sizeof(len);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue