aboutsummaryrefslogtreecommitdiff
path: root/jim-redis.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2021-02-20 17:59:36 +1000
committerSteve Bennett <steveb@workware.net.au>2021-02-20 17:59:36 +1000
commitcf92d24919b783ed5c384e7f9e87c5c719613583 (patch)
treed1b81e5a7510bf327c096cee20602ac04a35d7a0 /jim-redis.c
parent3b92ca80792c60f0607accce3af9cc591cfbc21e (diff)
downloadjimtcl-cf92d24919b783ed5c384e7f9e87c5c719613583.zip
jimtcl-cf92d24919b783ed5c384e7f9e87c5c719613583.tar.gz
jimtcl-cf92d24919b783ed5c384e7f9e87c5c719613583.tar.bz2
redis: avoid over-allocating memory
Should not make any difference in practice, but the allocations should be size * (argc - 1) not size * argc - 1 Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-redis.c')
-rw-r--r--jim-redis.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/jim-redis.c b/jim-redis.c
index 3ac07eb..a22c8f2 100644
--- a/jim-redis.c
+++ b/jim-redis.c
@@ -81,13 +81,14 @@ static int jim_redis_subcmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
}
}
else {
- args = Jim_Alloc(sizeof(*args) * argc - 1);
- arglens = Jim_Alloc(sizeof(*arglens) * argc - 1);
- for (i = 1; i < argc; i++) {
- args[i - 1] = Jim_String(argv[i]);
- arglens[i - 1] = Jim_Length(argv[i]);
+ int nargs = argc - 1;
+ args = Jim_Alloc(sizeof(*args) * nargs);
+ arglens = Jim_Alloc(sizeof(*arglens) * nargs);
+ for (i = 0; i < nargs; i++) {
+ args[i] = Jim_String(argv[i + 1]);
+ arglens[i] = Jim_Length(argv[i + 1]);
}
- reply = redisCommandArgv(c, argc - 1, args, arglens);
+ reply = redisCommandArgv(c, nargs, args, arglens);
Jim_Free(args);
Jim_Free(arglens);
}