From 9682295f68e5bd7ca72441ced23ba35539bdaeec Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 3 Apr 2014 10:37:32 +0200 Subject: [PATCH] PFCOUNT: unshare the object when cached cardinality is modified. --- src/hyperloglog.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/hyperloglog.c b/src/hyperloglog.c index ddbcf9bfd..7fad34d5b 100644 --- a/src/hyperloglog.c +++ b/src/hyperloglog.c @@ -541,6 +541,9 @@ void pfcountCommand(redisClient *c) { card |= (uint64_t)registers[REDIS_HLL_SIZE-9] << 56; } else { /* Recompute it and update the cached value. */ + o = dbUnshareStringValue(c->db,c->argv[1],o); + registers = o->ptr; + card = hllCount(registers); registers[REDIS_HLL_SIZE-16] = card & 0xff; registers[REDIS_HLL_SIZE-15] = (card >> 8) & 0xff; -- GitLab