]> git.saurik.com Git - redis.git/commitdiff
ziplistDelete no longer needs a direction now ziplistPrev is fixed
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 31 May 2010 18:18:23 +0000 (20:18 +0200)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Mon, 31 May 2010 18:18:35 +0000 (20:18 +0200)
ziplist.c
ziplist.h

index 2aeffa41f55f65129dfa6d0364c19a3066e4c11a..dd94f14e00755795b603bb11e8fbd1916a054c3c 100644 (file)
--- a/ziplist.c
+++ b/ziplist.c
@@ -482,7 +482,7 @@ unsigned char *ziplistInsert(unsigned char *zl, unsigned char *p, char *s, unsig
 /* Delete a single entry from the ziplist, pointed to by *p.
  * Also update *p in place, to be able to iterate over the
  * ziplist, while deleting entries. */
 /* Delete a single entry from the ziplist, pointed to by *p.
  * Also update *p in place, to be able to iterate over the
  * ziplist, while deleting entries. */
-unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p, int direction) {
+unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p) {
     unsigned int offset = *p-zl;
     zl = __ziplistDelete(zl,*p,1);
 
     unsigned int offset = *p-zl;
     zl = __ziplistDelete(zl,*p,1);
 
@@ -490,11 +490,7 @@ unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p, int direction
      * do a realloc which might result in a different "zl"-pointer.
      * When the delete direction is back to front, we might delete the last
      * entry and end up with "p" pointing to ZIP_END, so check this. */
      * do a realloc which might result in a different "zl"-pointer.
      * When the delete direction is back to front, we might delete the last
      * entry and end up with "p" pointing to ZIP_END, so check this. */
-    if (*(zl+offset) == ZIP_END && direction == ZIPLIST_HEAD) {
-        *p = ZIPLIST_ENTRY_TAIL(zl);
-    } else {
-        *p = zl+offset;
-    }
+    *p = zl+offset;
     return zl;
 }
 
     return zl;
 }
 
index 15153fea5548ee479f37aeb7dfa24ad760e8c0a4..e8522182cbace2367260abe210d395e175136f80 100644 (file)
--- a/ziplist.h
+++ b/ziplist.h
@@ -9,7 +9,7 @@ unsigned char *ziplistNext(unsigned char *zl, unsigned char *p);
 unsigned char *ziplistPrev(unsigned char *zl, unsigned char *p);
 unsigned int ziplistGet(unsigned char *p, char **sstr, unsigned int *slen, long long *sval);
 unsigned char *ziplistInsert(unsigned char *zl, unsigned char *p, char *s, unsigned int slen);
 unsigned char *ziplistPrev(unsigned char *zl, unsigned char *p);
 unsigned int ziplistGet(unsigned char *p, char **sstr, unsigned int *slen, long long *sval);
 unsigned char *ziplistInsert(unsigned char *zl, unsigned char *p, char *s, unsigned int slen);
-unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p, int direction);
+unsigned char *ziplistDelete(unsigned char *zl, unsigned char **p);
 unsigned char *ziplistDeleteRange(unsigned char *zl, unsigned int index, unsigned int num);
 unsigned int ziplistCompare(unsigned char *p, char *entry, unsigned int elen);
 unsigned int ziplistLen(unsigned char *zl);
 unsigned char *ziplistDeleteRange(unsigned char *zl, unsigned int index, unsigned int num);
 unsigned int ziplistCompare(unsigned char *p, char *entry, unsigned int elen);
 unsigned int ziplistLen(unsigned char *zl);