Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party CJSON
提交
11844dd5
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,发现更多精彩内容 >>
提交
11844dd5
编写于
11月 28, 2017
作者:
M
Max Bruckner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add cJSON_Create{Array,Object}Reference
上级
1f543f0e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
62 addition
and
0 deletion
+62
-0
cJSON.c
cJSON.c
+21
-0
cJSON.h
cJSON.h
+4
-0
tests/misc_tests.c
tests/misc_tests.c
+37
-0
未找到文件。
cJSON.c
浏览文件 @
11844dd5
...
...
@@ -2210,6 +2210,27 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string)
return
item
;
}
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateObjectReference
(
const
cJSON
*
child
)
{
cJSON
*
item
=
cJSON_New_Item
(
&
global_hooks
);
if
(
item
!=
NULL
)
{
item
->
type
=
cJSON_Object
|
cJSON_IsReference
;
item
->
child
=
(
cJSON
*
)
cast_away_const
(
child
);
}
return
item
;
}
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateArrayReference
(
const
cJSON
*
child
)
{
cJSON
*
item
=
cJSON_New_Item
(
&
global_hooks
);
if
(
item
!=
NULL
)
{
item
->
type
=
cJSON_Array
|
cJSON_IsReference
;
item
->
child
=
(
cJSON
*
)
cast_away_const
(
child
);
}
return
item
;
}
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateRaw
(
const
char
*
raw
)
{
cJSON
*
item
=
cJSON_New_Item
(
&
global_hooks
);
...
...
cJSON.h
浏览文件 @
11844dd5
...
...
@@ -195,6 +195,10 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void);
/* Create a string where valuestring references a string so
* it will not be freed by cJSON_Delete */
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateStringReference
(
const
char
*
string
);
/* Create an object/arrray that only references it's elements so
* they will not be freed by cJSON_Delete */
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateObjectReference
(
const
cJSON
*
child
);
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateArrayReference
(
const
cJSON
*
child
);
/* These utilities create an Array of count items. */
CJSON_PUBLIC
(
cJSON
*
)
cJSON_CreateIntArray
(
const
int
*
numbers
,
int
count
);
...
...
tests/misc_tests.c
浏览文件 @
11844dd5
...
...
@@ -473,6 +473,41 @@ static void cjson_create_string_reference_should_create_a_string_reference(void)
cJSON_Delete
(
string_reference
);
}
static
void
cjson_create_object_reference_should_create_an_object_reference
(
void
)
{
cJSON
*
number_reference
=
NULL
;
cJSON
*
number_object
=
cJSON_CreateObject
();
cJSON
*
number
=
cJSON_CreateNumber
(
42
);
const
char
key
[]
=
"number"
;
TEST_ASSERT_TRUE
(
cJSON_IsNumber
(
number
));
TEST_ASSERT_TRUE
(
cJSON_IsObject
(
number_object
));
cJSON_AddItemToObjectCS
(
number_object
,
key
,
number
);
number_reference
=
cJSON_CreateObjectReference
(
number
);
TEST_ASSERT_TRUE
(
number_reference
->
child
==
number
);
TEST_ASSERT_EQUAL_INT
(
cJSON_Object
|
cJSON_IsReference
,
number_reference
->
type
);
cJSON_Delete
(
number_object
);
cJSON_Delete
(
number_reference
);
}
static
void
cjson_create_array_reference_should_create_an_array_reference
(
void
)
{
cJSON
*
number_reference
=
NULL
;
cJSON
*
number_array
=
cJSON_CreateArray
();
cJSON
*
number
=
cJSON_CreateNumber
(
42
);
TEST_ASSERT_TRUE
(
cJSON_IsNumber
(
number
));
TEST_ASSERT_TRUE
(
cJSON_IsArray
(
number_array
));
cJSON_AddItemToArray
(
number_array
,
number
);
number_reference
=
cJSON_CreateArrayReference
(
number
);
TEST_ASSERT_TRUE
(
number_reference
->
child
==
number
);
TEST_ASSERT_EQUAL_INT
(
cJSON_Array
|
cJSON_IsReference
,
number_reference
->
type
);
cJSON_Delete
(
number_array
);
cJSON_Delete
(
number_reference
);
}
int
main
(
void
)
{
UNITY_BEGIN
();
...
...
@@ -493,6 +528,8 @@ int main(void)
RUN_TEST
(
skip_utf8_bom_should_not_skip_bom_if_not_at_beginning
);
RUN_TEST
(
cjson_get_string_value_should_get_a_string
);
RUN_TEST
(
cjson_create_string_reference_should_create_a_string_reference
);
RUN_TEST
(
cjson_create_object_reference_should_create_an_object_reference
);
RUN_TEST
(
cjson_create_array_reference_should_create_an_array_reference
);
return
UNITY_END
();
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录