Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
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
Show 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