Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party CJSON
提交
e591d417
T
Third Party CJSON
项目概览
OpenHarmony
/
Third Party CJSON
大约 1 年 前同步成功
通知
6
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party CJSON
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e591d417
编写于
4月 30, 2017
作者:
M
Max Bruckner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor cJSONUtils_GeneratePatch
上级
bde341ed
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
10 deletion
+21
-10
cJSON_Utils.c
cJSON_Utils.c
+21
-10
未找到文件。
cJSON_Utils.c
浏览文件 @
e591d417
...
...
@@ -843,24 +843,35 @@ CJSON_PUBLIC(int) cJSONUtils_ApplyPatches(cJSON * const object, const cJSON * co
return
0
;
}
static
void
cJSONUtils_GeneratePatch
(
cJSON
*
patches
,
const
unsigned
char
*
op
,
const
unsigned
char
*
path
,
const
unsigned
char
*
suffix
,
cJSON
*
val
)
static
void
cJSONUtils_GeneratePatch
(
cJSON
*
const
patches
,
const
unsigned
char
*
const
operation
,
const
unsigned
char
*
const
path
,
const
unsigned
char
*
suffix
,
const
cJSON
*
const
value
)
{
cJSON
*
patch
=
cJSON_CreateObject
();
cJSON_AddItemToObject
(
patch
,
"op"
,
cJSON_CreateString
((
const
char
*
)
op
));
if
(
suffix
)
if
(
patch
==
NULL
)
{
unsigned
char
*
newpath
=
(
unsigned
char
*
)
cJSON_malloc
(
strlen
((
const
char
*
)
path
)
+
cJSONUtils_PointerEncodedstrlen
(
suffix
)
+
2
);
cJSONUtils_PointerEncodedstrcpy
(
newpath
+
sprintf
((
char
*
)
newpath
,
"%s/"
,
(
const
char
*
)
path
),
suffix
);
cJSON_AddItemToObject
(
patch
,
"path"
,
cJSON_CreateString
((
const
char
*
)
newpath
));
free
(
newpath
);
return
;
}
else
cJSON_AddItemToObject
(
patch
,
"op"
,
cJSON_CreateString
((
const
char
*
)
operation
));
if
(
suffix
==
NULL
)
{
cJSON_AddItemToObject
(
patch
,
"path"
,
cJSON_CreateString
((
const
char
*
)
path
));
}
if
(
val
)
else
{
size_t
suffix_length
=
cJSONUtils_PointerEncodedstrlen
(
suffix
);
size_t
path_length
=
strlen
((
const
char
*
)
path
);
unsigned
char
*
full_path
=
(
unsigned
char
*
)
cJSON_malloc
(
path_length
+
suffix_length
+
sizeof
(
"/"
));
sprintf
((
char
*
)
full_path
,
"%s/"
,
(
const
char
*
)
path
);
cJSONUtils_PointerEncodedstrcpy
(
full_path
+
path_length
+
1
,
suffix
);
cJSON_AddItemToObject
(
patch
,
"path"
,
cJSON_CreateString
((
const
char
*
)
full_path
));
free
(
full_path
);
}
if
(
value
!=
NULL
)
{
cJSON_AddItemToObject
(
patch
,
"value"
,
cJSON_Duplicate
(
val
,
1
));
cJSON_AddItemToObject
(
patch
,
"value"
,
cJSON_Duplicate
(
val
ue
,
1
));
}
cJSON_AddItemToArray
(
patches
,
patch
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录