summaryrefslogtreecommitdiff
path: root/src/module.c
diff options
context:
space:
mode:
authorguybe7 <guy.benoish@redislabs.com>2022-10-24 17:30:16 +0200
committerGitHub <noreply@github.com>2022-10-24 18:30:16 +0300
commitf8970fdbfa138f8576340ff0af73c3d2603c7e8e (patch)
treeafd145861d2b7536745c5546e85d51056b9642a9 /src/module.c
parent737a090511f0aacc53d9b9f91a8f30106a1d7464 (diff)
downloadredis-f8970fdbfa138f8576340ff0af73c3d2603c7e8e.tar.gz
Cleanup: Remove redundant arg from moduleCreateArgvFromUserFormat (#11426)
We do not need to return the length of argv because it is equal to argc, which we return anyway. This change makes the code cleaner and adds a comment to explain something that might not be immediately clear.
Diffstat (limited to 'src/module.c')
-rw-r--r--src/module.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/module.c b/src/module.c
index ff274825c..f03743681 100644
--- a/src/module.c
+++ b/src/module.c
@@ -444,7 +444,7 @@ struct ModuleConfig {
void RM_FreeCallReply(RedisModuleCallReply *reply);
void RM_CloseKey(RedisModuleKey *key);
void autoMemoryCollect(RedisModuleCtx *ctx);
-robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *fmt, int *argcp, int *argvlenp, int *flags, va_list ap);
+robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *fmt, int *argcp, int *flags, va_list ap);
void RM_ZsetRangeStop(RedisModuleKey *kp);
static void zsetKeyReset(RedisModuleKey *key);
static void moduleInitKeyTypeSpecific(RedisModuleKey *key);
@@ -3226,7 +3226,7 @@ int RM_Replicate(RedisModuleCtx *ctx, const char *cmdname, const char *fmt, ...)
/* Create the client and dispatch the command. */
va_start(ap, fmt);
- argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,NULL,&flags,ap);
+ argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,&flags,ap);
va_end(ap);
if (argv == NULL) return REDISMODULE_ERR;
@@ -5643,7 +5643,7 @@ void RM_SetContextUser(RedisModuleCtx *ctx, const RedisModuleUser *user) {
/* Returns an array of robj pointers, by parsing the format specifier "fmt" as described for
* the RM_Call(), RM_Replicate() and other module APIs. Populates *argcp with the number of
- * items and *argvlenp with the length of the allocated argv.
+ * items (which equals to the length of the allocated argv).
*
* The integer pointed by 'flags' is populated with flags according
* to special modifiers in "fmt".
@@ -5657,7 +5657,7 @@ void RM_SetContextUser(RedisModuleCtx *ctx, const RedisModuleUser *user) {
*
* On error (format specifier error) NULL is returned and nothing is
* allocated. On success the argument vector is returned. */
-robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *fmt, int *argcp, int *argvlenp, int *flags, va_list ap) {
+robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *fmt, int *argcp, int *flags, va_list ap) {
int argc = 0, argv_size, j;
robj **argv = NULL;
@@ -5734,7 +5734,6 @@ robj **moduleCreateArgvFromUserFormat(const char *cmdname, const char *fmt, int
p++;
}
if (argcp) *argcp = argc;
- if (argvlenp) *argvlenp = argv_size;
return argv;
fmterr:
@@ -5823,7 +5822,7 @@ fmterr:
RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, const char *fmt, ...) {
client *c = NULL;
robj **argv = NULL;
- int argc = 0, argv_len = 0, flags = 0;
+ int argc = 0, flags = 0;
va_list ap;
RedisModuleCallReply *reply = NULL;
int replicate = 0; /* Replicate this command? */
@@ -5832,7 +5831,7 @@ RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, const ch
/* Handle arguments. */
va_start(ap, fmt);
- argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,&argv_len,&flags,ap);
+ argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,&flags,ap);
replicate = flags & REDISMODULE_ARGV_REPLICATE;
error_as_call_replies = flags & REDISMODULE_ARGV_CALL_REPLIES_AS_ERRORS;
va_end(ap);
@@ -5856,8 +5855,9 @@ RedisModuleCallReply *RM_Call(RedisModuleCtx *ctx, const char *cmdname, const ch
c->flags |= CLIENT_DENY_BLOCKING;
c->db = ctx->client->db;
c->argv = argv;
- c->argc = argc;
- c->argv_len = argv_len;
+ /* We have to assign argv_len, which is equal to argc in that case (RM_Call)
+ * because we may be calling a command that uses rewriteClientCommandArgument */
+ c->argc = c->argv_len = argc;
c->resp = 2;
if (flags & REDISMODULE_ARGV_RESP_3) {
c->resp = 3;
@@ -7030,7 +7030,7 @@ void RM_EmitAOF(RedisModuleIO *io, const char *cmdname, const char *fmt, ...) {
/* Emit the arguments into the AOF in Redis protocol format. */
va_start(ap, fmt);
- argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,NULL,&flags,ap);
+ argv = moduleCreateArgvFromUserFormat(cmdname,fmt,&argc,&flags,ap);
va_end(ap);
if (argv == NULL) {
serverLog(LL_WARNING,