@@ -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)
970974static 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