Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party CJSON
提交
c66342d8
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,发现更多精彩内容 >>
提交
c66342d8
编写于
4月 12, 2017
作者:
M
Max Bruckner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cJSON_Utils: Use enum for opcode
上级
c960b2b8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
15 deletion
+14
-15
cJSON_Utils.c
cJSON_Utils.c
+14
-15
未找到文件。
cJSON_Utils.c
浏览文件 @
c66342d8
...
...
@@ -466,13 +466,15 @@ static cJSON_bool insert_item_in_array(cJSON *array, size_t which, cJSON *newite
return
1
;
}
enum
patch_operation
{
INVALID
,
ADD
,
REMOVE
,
REPLACE
,
MOVE
,
COPY
,
TEST
};
static
int
cJSONUtils_ApplyPatch
(
cJSON
*
object
,
cJSON
*
patch
)
{
cJSON
*
op
=
NULL
;
cJSON
*
path
=
NULL
;
cJSON
*
value
=
NULL
;
cJSON
*
parent
=
NULL
;
int
opcode
=
0
;
enum
patch_operation
opcode
=
INVALID
;
unsigned
char
*
parentptr
=
NULL
;
unsigned
char
*
childptr
=
NULL
;
...
...
@@ -487,23 +489,23 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
/* decode operation */
if
(
!
strcmp
(
op
->
valuestring
,
"add"
))
{
opcode
=
0
;
opcode
=
ADD
;
}
else
if
(
!
strcmp
(
op
->
valuestring
,
"remove"
))
{
opcode
=
1
;
opcode
=
REMOVE
;
}
else
if
(
!
strcmp
(
op
->
valuestring
,
"replace"
))
{
opcode
=
2
;
opcode
=
REPLACE
;
}
else
if
(
!
strcmp
(
op
->
valuestring
,
"move"
))
{
opcode
=
3
;
opcode
=
MOVE
;
}
else
if
(
!
strcmp
(
op
->
valuestring
,
"copy"
))
{
opcode
=
4
;
opcode
=
COPY
;
}
else
if
(
!
strcmp
(
op
->
valuestring
,
"test"
))
{
...
...
@@ -516,8 +518,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
return
3
;
}
/* Remove/Replace */
if
((
opcode
==
1
)
||
(
opcode
==
2
))
if
((
opcode
==
REMOVE
)
||
(
opcode
==
REPLACE
))
{
/* Get rid of old. */
cJSON
*
old_item
=
cJSONUtils_PatchDetach
(
object
,
(
unsigned
char
*
)
path
->
valuestring
);
...
...
@@ -526,7 +527,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
return
13
;
}
cJSON_Delete
(
old_item
);
if
(
opcode
==
1
)
if
(
opcode
==
REMOVE
)
{
/* For Remove, this job is done. */
return
0
;
...
...
@@ -534,7 +535,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
}
/* Copy/Move uses "from". */
if
((
opcode
==
3
)
||
(
opcode
==
4
))
if
((
opcode
==
MOVE
)
||
(
opcode
==
COPY
))
{
cJSON
*
from
=
cJSON_GetObjectItem
(
patch
,
"from"
);
if
(
!
from
)
...
...
@@ -543,14 +544,12 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
return
4
;
}
if
(
opcode
==
3
)
if
(
opcode
==
MOVE
)
{
/* move */
value
=
cJSONUtils_PatchDetach
(
object
,
(
unsigned
char
*
)
from
->
valuestring
);
}
if
(
opcode
==
4
)
if
(
opcode
==
COPY
)
{
/* copy */
value
=
cJSONUtils_GetPointer
(
object
,
from
->
valuestring
);
}
if
(
!
value
)
...
...
@@ -558,7 +557,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch)
/* missing "from" for copy/move. */
return
5
;
}
if
(
opcode
==
4
)
if
(
opcode
==
COPY
)
{
value
=
cJSON_Duplicate
(
value
,
1
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录