summaryrefslogtreecommitdiff
path: root/src/ziplist.h
diff options
context:
space:
mode:
authorViktor Söderqvist <viktor.soderqvist@est.tech>2021-02-12 18:03:10 +0100
committerOran Agra <oran@redislabs.com>2021-02-16 13:01:14 +0200
commitacb32d472da72a36dc73eca5fef1df71cffdc328 (patch)
tree70aee82de54177278160e8e62667d8cc204027e7 /src/ziplist.h
parent683e530cf3c3e71266b8d18073fd026da9de4ddb (diff)
downloadredis-acb32d472da72a36dc73eca5fef1df71cffdc328.tar.gz
Add ziplistReplace, in-place optimized for elements of same size
Avoids memmove and reallocs when replacing a ziplist element of the same encoded size as the new value. Affects HSET, HINRBY, HINCRBYFLOAT (via hashTypeSet) and LSET (via quicklistReplaceAtIndex).
Diffstat (limited to 'src/ziplist.h')
-rw-r--r--src/ziplist.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ziplist.h b/src/ziplist.h
index fff334cbd..9dc1061b0 100644
--- a/src/ziplist.h
+++ b/src/ziplist.h
@@ -53,6 +53,7 @@ unsigned int ziplistGet(unsigned char *p, unsigned char **sval, unsigned int *sl
unsigned char *ziplistInsert(unsigned char *zl, unsigned char *p, unsigned char *s, unsigned int slen);
unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p);
unsigned char *ziplistDeleteRange(unsigned char *zl, int index, unsigned int num);
+unsigned char *ziplistReplace(unsigned char *zl, unsigned char *p, unsigned char *s, unsigned int slen);
unsigned int ziplistCompare(unsigned char *p, unsigned char *s, unsigned int slen);
unsigned char *ziplistFind(unsigned char *zl, unsigned char *p, unsigned char *vstr, unsigned int vlen, unsigned int skip);
unsigned int ziplistLen(unsigned char *zl);