diff options
author | Pieter Noordhuis <pcnoordhuis@gmail.com> | 2010-10-17 17:21:41 +0200 |
---|---|---|
committer | Pieter Noordhuis <pcnoordhuis@gmail.com> | 2010-10-17 17:21:41 +0200 |
commit | 75b41de8ca975d01c6371a98f9e552c934af5937 (patch) | |
tree | cfd6d3091699aaa9d3fac8834302f9d8b3e892d4 /src/t_set.c | |
parent | b19c33d48a3b5456b87f84c85fdd85592e0c0562 (diff) | |
download | redis-75b41de8ca975d01c6371a98f9e552c934af5937.tar.gz |
Convert objects in the command procs instead of the protocol code
Diffstat (limited to 'src/t_set.c')
-rw-r--r-- | src/t_set.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/t_set.c b/src/t_set.c index e2ac5ae53..234efc7de 100644 --- a/src/t_set.c +++ b/src/t_set.c @@ -178,6 +178,7 @@ void saddCommand(redisClient *c) { robj *set; set = lookupKeyWrite(c->db,c->argv[1]); + c->argv[2] = tryObjectEncoding(c->argv[2]); if (set == NULL) { set = setTypeCreate(c->argv[2]); dbAdd(c->db,c->argv[1],set); @@ -202,6 +203,7 @@ void sremCommand(redisClient *c) { if ((set = lookupKeyWriteOrReply(c,c->argv[1],shared.czero)) == NULL || checkType(c,set,REDIS_SET)) return; + c->argv[2] = tryObjectEncoding(c->argv[2]); if (setTypeRemove(set,c->argv[2])) { if (setTypeSize(set) == 0) dbDelete(c->db,c->argv[1]); touchWatchedKey(c->db,c->argv[1]); @@ -216,7 +218,7 @@ void smoveCommand(redisClient *c) { robj *srcset, *dstset, *ele; srcset = lookupKeyWrite(c->db,c->argv[1]); dstset = lookupKeyWrite(c->db,c->argv[2]); - ele = c->argv[3]; + ele = c->argv[3] = tryObjectEncoding(c->argv[3]); /* If the source key does not exist return 0 */ if (srcset == NULL) { @@ -264,6 +266,7 @@ void sismemberCommand(redisClient *c) { if ((set = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || checkType(c,set,REDIS_SET)) return; + c->argv[2] = tryObjectEncoding(c->argv[2]); if (setTypeIsMember(set,c->argv[2])) addReply(c,shared.cone); else |