summaryrefslogtreecommitdiff
path: root/src/t_set.c
diff options
context:
space:
mode:
authorPieter Noordhuis <pcnoordhuis@gmail.com>2010-10-17 17:21:41 +0200
committerPieter Noordhuis <pcnoordhuis@gmail.com>2010-10-17 17:21:41 +0200
commit75b41de8ca975d01c6371a98f9e552c934af5937 (patch)
treecfd6d3091699aaa9d3fac8834302f9d8b3e892d4 /src/t_set.c
parentb19c33d48a3b5456b87f84c85fdd85592e0c0562 (diff)
downloadredis-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.c5
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