Skip to content

Commit e2947a7

Browse files
committed
Use 'ret' from copy functions.
1 parent 68d9a53 commit e2947a7

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

json_parser.c

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -920,6 +920,7 @@ static int __copy_json_members(const json_object_t *src, json_object_t *dest)
920920
json_member_t *entry;
921921
json_member_t *memb;
922922
size_t len;
923+
int ret;
923924

924925
list_for_each(pos, &src->head)
925926
{
@@ -929,10 +930,11 @@ static int __copy_json_members(const json_object_t *src, json_object_t *dest)
929930
if (!memb)
930931
return -1;
931932

932-
if (__copy_json_value(&entry->value, &memb->value) < 0)
933+
ret = __copy_json_value(&entry->value, &memb->value);
934+
if (ret < 0)
933935
{
934936
free(memb);
935-
return -1;
937+
return ret;
936938
}
937939

938940
memcpy(memb->name, entry->name, len + 1);
@@ -947,6 +949,7 @@ static int __copy_json_elements(const json_array_t *src, json_array_t *dest)
947949
struct list_head *pos;
948950
json_element_t *entry;
949951
json_element_t *elem;
952+
int ret;
950953

951954
list_for_each(pos, &src->head)
952955
{
@@ -955,10 +958,11 @@ static int __copy_json_elements(const json_array_t *src, json_array_t *dest)
955958
return -1;
956959

957960
entry = list_entry(pos, json_element_t, list);
958-
if (__copy_json_value(&entry->value, &elem->value) < 0)
961+
ret = __copy_json_value(&entry->value, &elem->value);
962+
if (ret < 0)
959963
{
960964
free(elem);
961-
return -1;
965+
return ret;
962966
}
963967

964968
list_add_tail(&elem->list, &dest->head);
@@ -970,6 +974,7 @@ static int __copy_json_elements(const json_array_t *src, json_array_t *dest)
970974
static int __copy_json_value(const json_value_t *src, json_value_t *dest)
971975
{
972976
size_t len;
977+
int ret;
973978

974979
switch (src->type)
975980
{
@@ -989,24 +994,26 @@ static int __copy_json_value(const json_value_t *src, json_value_t *dest)
989994
case JSON_VALUE_OBJECT:
990995
INIT_LIST_HEAD(&dest->value.object.head);
991996
dest->value.object.root.rb_node = NULL;
992-
if (__copy_json_members(&src->value.object, &dest->value.object) < 0)
997+
ret = __copy_json_members(&src->value.object, &dest->value.object);
998+
if (ret < 0)
993999
{
9941000
__destroy_json_members(&dest->value.object);
995-
return -1;
1001+
return ret;
9961002
}
9971003

998-
dest->value.object.size = src->value.object.size;
1004+
dest->value.object.size = ret;
9991005
break;
10001006

10011007
case JSON_VALUE_ARRAY:
10021008
INIT_LIST_HEAD(&dest->value.array.head);
1003-
if (__copy_json_elements(&src->value.array, &dest->value.array) < 0)
1009+
ret = __copy_json_elements(&src->value.array, &dest->value.array);
1010+
if (ret < 0)
10041011
{
10051012
__destroy_json_elements(&dest->value.array);
1006-
return -1;
1013+
return ret;
10071014
}
10081015

1009-
dest->value.array.size = src->value.array.size;
1016+
dest->value.array.size = ret;
10101017
break;
10111018
}
10121019

0 commit comments

Comments
 (0)