]> git.saurik.com Git - redis.git/commitdiff
fix LREM to remove *all* occurances when a zero argument is given
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Sun, 30 May 2010 01:14:38 +0000 (03:14 +0200)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Sun, 30 May 2010 01:25:14 +0000 (03:25 +0200)
redis.c

diff --git a/redis.c b/redis.c
index 1ae32797186e3b4319c85c552be19349d56a1505..2a4882834f8306cb66a8b014e5d9abc6bc1da6ee 100644 (file)
--- a/redis.c
+++ b/redis.c
@@ -5196,12 +5196,12 @@ static void lremCommand(redisClient *c) {
         li = lInitIterator(subject,0);
     }
 
-    while (toremove && lIsEntry(li)) {
+    while (lIsEntry(li)) {
         if (lEqualTo(li,obj)) {
             lDelete(li,direction);
             server.dirty++;
-            toremove--;
             removed++;
+            if (toremove && removed == toremove) break;
         } else {
             lMove(li,direction);
         }