diff options
author | Viktor Söderqvist <viktor.soderqvist@est.tech> | 2021-02-12 18:03:10 +0100 |
---|---|---|
committer | Oran Agra <oran@redislabs.com> | 2021-02-16 13:01:14 +0200 |
commit | acb32d472da72a36dc73eca5fef1df71cffdc328 (patch) | |
tree | 70aee82de54177278160e8e62667d8cc204027e7 /src/ziplist.h | |
parent | 683e530cf3c3e71266b8d18073fd026da9de4ddb (diff) | |
download | redis-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.h | 1 |
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); |