From 574ed6b0ceb3a180e29f231a4ca047dec8dc39b9 Mon Sep 17 00:00:00 2001 From: Evan Date: Mon, 11 Apr 2022 01:34:43 -0400 Subject: [PATCH] modules: add RedisModuleKey* return type to RM_OpenKey (#3719) Change `RM_OpenKey` to return `RedisModuleKey*` instead of `void*`. Which is the input type of other APIs that take the value from RM_OpenKey. --- src/module.c | 4 ++-- src/redismodule.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/module.c b/src/module.c index dd4612d08..a702d462b 100644 --- a/src/module.c +++ b/src/module.c @@ -3630,7 +3630,7 @@ static void moduleInitKeyTypeSpecific(RedisModuleKey *key) { * key does not exist, NULL is returned. However it is still safe to * call RedisModule_CloseKey() and RedisModule_KeyType() on a NULL * value. */ -void *RM_OpenKey(RedisModuleCtx *ctx, robj *keyname, int mode) { +RedisModuleKey *RM_OpenKey(RedisModuleCtx *ctx, robj *keyname, int mode) { RedisModuleKey *kp; robj *value; int flags = mode & REDISMODULE_OPEN_KEY_NOTOUCH? LOOKUP_NOTOUCH: 0; @@ -3648,7 +3648,7 @@ void *RM_OpenKey(RedisModuleCtx *ctx, robj *keyname, int mode) { kp = zmalloc(sizeof(*kp)); moduleInitKey(kp, ctx, keyname, value, mode); autoMemoryAdd(ctx,REDISMODULE_AM_KEY,kp); - return (void*)kp; + return kp; } /* Destroy a RedisModuleKey struct (freeing is the responsibility of the caller). */ diff --git a/src/redismodule.h b/src/redismodule.h index 300a7e541..4d3141488 100644 --- a/src/redismodule.h +++ b/src/redismodule.h @@ -878,7 +878,7 @@ REDISMODULE_API int (*RedisModule_ReplyWithLongLong)(RedisModuleCtx *ctx, long l REDISMODULE_API int (*RedisModule_GetSelectedDb)(RedisModuleCtx *ctx) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_SelectDb)(RedisModuleCtx *ctx, int newid) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_KeyExists)(RedisModuleCtx *ctx, RedisModuleString *keyname) REDISMODULE_ATTR; -REDISMODULE_API void * (*RedisModule_OpenKey)(RedisModuleCtx *ctx, RedisModuleString *keyname, int mode) REDISMODULE_ATTR; +REDISMODULE_API RedisModuleKey * (*RedisModule_OpenKey)(RedisModuleCtx *ctx, RedisModuleString *keyname, int mode) REDISMODULE_ATTR; REDISMODULE_API void (*RedisModule_CloseKey)(RedisModuleKey *kp) REDISMODULE_ATTR; REDISMODULE_API int (*RedisModule_KeyType)(RedisModuleKey *kp) REDISMODULE_ATTR; REDISMODULE_API size_t (*RedisModule_ValueLength)(RedisModuleKey *kp) REDISMODULE_ATTR;