Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
3a0b776b
Commit
3a0b776b
authored
Jun 23, 2016
by
Salvatore Sanfilippo
Committed by
GitHub
Jun 23, 2016
Browse files
Merge pull request #3335 from dvirsky/rm_calloc
added RM_Calloc implementation
parents
c026b5cd
dc7f3fef
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/module.c
View file @
3a0b776b
...
...
@@ -173,11 +173,19 @@ static void zsetKeyReset(RedisModuleKey *key);
/* Use like malloc(). Memory allocated with this function is reported in
* Redis INFO memory, used for keys eviction according to maxmemory settings
* and in general is taken into account as memory allocated by Redis.
* You should avoid
to use
malloc(). */
* You should avoid
using
malloc(). */
void
*
RM_Alloc
(
size_t
bytes
)
{
return
zmalloc
(
bytes
);
}
/* Use like calloc(). Memory allocated with this function is reported in
* Redis INFO memory, used for keys eviction according to maxmemory settings
* and in general is taken into account as memory allocated by Redis.
* You should avoid using calloc() directly. */
void
*
RM_Calloc
(
size_t
nmemb
,
size_t
size
)
{
return
zcalloc
(
nmemb
*
size
);
}
/* Use like realloc() for memory obtained with RedisModule_Alloc(). */
void
*
RM_Realloc
(
void
*
ptr
,
size_t
bytes
)
{
return
zrealloc
(
ptr
,
bytes
);
...
...
@@ -2861,6 +2869,7 @@ int moduleRegisterApi(const char *funcname, void *funcptr) {
void
moduleRegisterCoreAPI
(
void
)
{
server
.
moduleapi
=
dictCreate
(
&
moduleAPIDictType
,
NULL
);
REGISTER_API
(
Alloc
);
REGISTER_API
(
Calloc
);
REGISTER_API
(
Realloc
);
REGISTER_API
(
Free
);
REGISTER_API
(
Strdup
);
...
...
src/redismodule.h
View file @
3a0b776b
...
...
@@ -96,9 +96,11 @@ typedef void (*RedisModuleTypeFreeFunc)(void *value);
#define REDISMODULE_API_FUNC(x) (*x)
void
*
REDISMODULE_API_FUNC
(
RedisModule_Alloc
)(
size_t
bytes
);
void
*
REDISMODULE_API_FUNC
(
RedisModule_Realloc
)(
void
*
ptr
,
size_t
bytes
);
void
REDISMODULE_API_FUNC
(
RedisModule_Free
)(
void
*
ptr
);
void
REDISMODULE_API_FUNC
(
RedisModule_Calloc
)(
size_t
nmemb
,
size_t
size
);
char
*
REDISMODULE_API_FUNC
(
RedisModule_Strdup
)(
const
char
*
str
);
int
REDISMODULE_API_FUNC
(
RedisModule_GetApi
)(
const
char
*
,
void
*
);
int
REDISMODULE_API_FUNC
(
RedisModule_CreateCommand
)(
RedisModuleCtx
*
ctx
,
const
char
*
name
,
RedisModuleCmdFunc
cmdfunc
,
const
char
*
strflags
,
int
firstkey
,
int
lastkey
,
int
keystep
);
...
...
@@ -189,6 +191,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
void
*
getapifuncptr
=
((
void
**
)
ctx
)[
0
];
RedisModule_GetApi
=
(
int
(
*
)(
const
char
*
,
void
*
))
(
unsigned
long
)
getapifuncptr
;
REDISMODULE_GET_API
(
Alloc
);
REDISMODULE_GET_API
(
Calloc
);
REDISMODULE_GET_API
(
Free
);
REDISMODULE_GET_API
(
Realloc
);
REDISMODULE_GET_API
(
Strdup
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment