Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
61172ed0
R
redis
项目概览
Turbo码先生
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
61172ed0
编写于
6月 22, 2016
作者:
Y
Yossi Gottlieb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add RedisModule_CreateStringFromString().
上级
4e10b08f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
26 addition
and
2 deletion
+26
-2
src/module.c
src/module.c
+12
-0
src/modules/API.md
src/modules/API.md
+10
-0
src/object.c
src/object.c
+1
-1
src/redismodule.h
src/redismodule.h
+2
-0
src/server.h
src/server.h
+1
-1
未找到文件。
src/module.c
浏览文件 @
61172ed0
...
...
@@ -673,6 +673,17 @@ RedisModuleString *RM_CreateStringFromLongLong(RedisModuleCtx *ctx, long long ll
return
RM_CreateString
(
ctx
,
buf
,
len
);
}
/* Like RedisModule_CreatString(), but creates a string starting from another
* RedisModuleString.
*
* The returned string must be released with RedisModule_FreeString() or by
* enabling automatic memory management. */
RedisModuleString
*
RM_CreateStringFromString
(
RedisModuleCtx
*
ctx
,
const
RedisModuleString
*
str
)
{
RedisModuleString
*
o
=
dupStringObject
(
str
);
autoMemoryAdd
(
ctx
,
REDISMODULE_AM_STRING
,
o
);
return
o
;
}
/* Free a module string object obtained with one of the Redis modules API calls
* that return new string objects.
*
...
...
@@ -2828,6 +2839,7 @@ void moduleRegisterCoreAPI(void) {
REGISTER_API
(
CreateStringFromCallReply
);
REGISTER_API
(
CreateString
);
REGISTER_API
(
CreateStringFromLongLong
);
REGISTER_API
(
CreateStringFromString
);
REGISTER_API
(
FreeString
);
REGISTER_API
(
StringPtrLen
);
REGISTER_API
(
AutoMemory
);
...
...
src/modules/API.md
浏览文件 @
61172ed0
...
...
@@ -179,6 +179,16 @@ integer instead of taking a buffer and its length.
The returned string must be released with
`RedisModule_FreeString()`
or by
enabling automatic memory management.
## `RM_CreateStringFromString`
RedisModuleString *RM_CreateStringFromString(RedisModuleCtx *ctx, const RedisModuleString *str);
Like
`RedisModule_CreatString()`
, but creates a string starting from an existing
RedisModuleString.
The returned string must be released with
`RedisModule_FreeString()`
or by
enabling automatic memory management.
## `RM_FreeString`
void RM_FreeString(RedisModuleCtx *ctx, RedisModuleString *str);
...
...
src/object.c
浏览文件 @
61172ed0
...
...
@@ -147,7 +147,7 @@ robj *createStringObjectFromLongDouble(long double value, int humanfriendly) {
* will always result in a fresh object that is unshared (refcount == 1).
*
* The resulting object always has refcount set to 1. */
robj
*
dupStringObject
(
robj
*
o
)
{
robj
*
dupStringObject
(
const
robj
*
o
)
{
robj
*
d
;
serverAssert
(
o
->
type
==
OBJ_STRING
);
...
...
src/redismodule.h
浏览文件 @
61172ed0
...
...
@@ -122,6 +122,7 @@ size_t REDISMODULE_API_FUNC(RedisModule_CallReplyLength)(RedisModuleCallReply *r
RedisModuleCallReply
*
REDISMODULE_API_FUNC
(
RedisModule_CallReplyArrayElement
)(
RedisModuleCallReply
*
reply
,
size_t
idx
);
RedisModuleString
*
REDISMODULE_API_FUNC
(
RedisModule_CreateString
)(
RedisModuleCtx
*
ctx
,
const
char
*
ptr
,
size_t
len
);
RedisModuleString
*
REDISMODULE_API_FUNC
(
RedisModule_CreateStringFromLongLong
)(
RedisModuleCtx
*
ctx
,
long
long
ll
);
RedisModuleString
*
REDISMODULE_API_FUNC
(
RedisModule_CreateStringFromString
)(
RedisModuleCtx
*
ctx
,
const
RedisModuleString
*
str
);
void
REDISMODULE_API_FUNC
(
RedisModule_FreeString
)(
RedisModuleCtx
*
ctx
,
RedisModuleString
*
str
);
const
char
*
REDISMODULE_API_FUNC
(
RedisModule_StringPtrLen
)(
RedisModuleString
*
str
,
size_t
*
len
);
int
REDISMODULE_API_FUNC
(
RedisModule_ReplyWithError
)(
RedisModuleCtx
*
ctx
,
const
char
*
err
);
...
...
@@ -225,6 +226,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
REDISMODULE_GET_API
(
CreateStringFromCallReply
);
REDISMODULE_GET_API
(
CreateString
);
REDISMODULE_GET_API
(
CreateStringFromLongLong
);
REDISMODULE_GET_API
(
CreateStringFromString
);
REDISMODULE_GET_API
(
FreeString
);
REDISMODULE_GET_API
(
StringPtrLen
);
REDISMODULE_GET_API
(
AutoMemory
);
...
...
src/server.h
浏览文件 @
61172ed0
...
...
@@ -1285,7 +1285,7 @@ robj *createObject(int type, void *ptr);
robj
*
createStringObject
(
const
char
*
ptr
,
size_t
len
);
robj
*
createRawStringObject
(
const
char
*
ptr
,
size_t
len
);
robj
*
createEmbeddedStringObject
(
const
char
*
ptr
,
size_t
len
);
robj
*
dupStringObject
(
robj
*
o
);
robj
*
dupStringObject
(
const
robj
*
o
);
int
isSdsRepresentableAsLongLong
(
sds
s
,
long
long
*
llval
);
int
isObjectRepresentableAsLongLong
(
robj
*
o
,
long
long
*
llongval
);
robj
*
tryObjectEncoding
(
robj
*
o
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录