@@ -1145,8 +1145,10 @@ CJSON_PUBLIC(void) cJSONUtils_SortObject(cJSON * const object)
11451145 object -> child = cJSONUtils_SortList (object -> child );
11461146}
11471147
1148- CJSON_PUBLIC (cJSON * ) cJSONUtils_MergePatch (cJSON * target , cJSON * patch )
1148+ CJSON_PUBLIC (cJSON * ) cJSONUtils_MergePatch (cJSON * target , const cJSON * const patch )
11491149{
1150+ cJSON * patch_child = NULL ;
1151+
11501152 if (!cJSON_IsObject (patch ))
11511153 {
11521154 /* scalar value, array or NULL, just duplicate */
@@ -1160,20 +1162,20 @@ CJSON_PUBLIC(cJSON *) cJSONUtils_MergePatch(cJSON *target, cJSON *patch)
11601162 target = cJSON_CreateObject ();
11611163 }
11621164
1163- patch = patch -> child ;
1164- while (patch )
1165+ patch_child = patch -> child ;
1166+ while (patch_child != NULL )
11651167 {
1166- if (cJSON_IsNull (patch ))
1168+ if (cJSON_IsNull (patch_child ))
11671169 {
11681170 /* NULL is the indicator to remove a value, see RFC7396 */
1169- cJSON_DeleteItemFromObject (target , patch -> string );
1171+ cJSON_DeleteItemFromObject (target , patch_child -> string );
11701172 }
11711173 else
11721174 {
1173- cJSON * replaceme = cJSON_DetachItemFromObject (target , patch -> string );
1174- cJSON_AddItemToObject (target , patch -> string , cJSONUtils_MergePatch (replaceme , patch ));
1175+ cJSON * replace_me = cJSON_DetachItemFromObject (target , patch_child -> string );
1176+ cJSON_AddItemToObject (target , patch_child -> string , cJSONUtils_MergePatch (replace_me , patch_child ));
11751177 }
1176- patch = patch -> next ;
1178+ patch_child = patch_child -> next ;
11771179 }
11781180 return target ;
11791181}
0 commit comments