diff --git a/src/hyperloglog.c b/src/hyperloglog.c index ddbcf9bfd1d2789ab0596331fed4fff7b0946fa7..7fad34d5bb5d9d4ae642a27aa717e50270b65508 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;