提交 58bc383b 编写于 作者: M Max Bruckner

fix memory leaks

上级 1a20eb84
...@@ -186,7 +186,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object,cJSON *patch) ...@@ -186,7 +186,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object,cJSON *patch)
cJSONUtils_InplaceDecodePointerString(childptr); cJSONUtils_InplaceDecodePointerString(childptr);
/* add, remove, replace, move, copy, test. */ /* add, remove, replace, move, copy, test. */
if (!parent) {free(parentptr); return 9;} /* Couldn't find object to add to. */ if (!parent) {free(parentptr); cJSON_Delete(value); return 9;} /* Couldn't find object to add to. */
else if (parent->type==cJSON_Array) else if (parent->type==cJSON_Array)
{ {
if (!strcmp(childptr,"-")) cJSON_AddItemToArray(parent,value); if (!strcmp(childptr,"-")) cJSON_AddItemToArray(parent,value);
...@@ -197,6 +197,10 @@ static int cJSONUtils_ApplyPatch(cJSON *object,cJSON *patch) ...@@ -197,6 +197,10 @@ static int cJSONUtils_ApplyPatch(cJSON *object,cJSON *patch)
cJSON_DeleteItemFromObject(parent,childptr); cJSON_DeleteItemFromObject(parent,childptr);
cJSON_AddItemToObject(parent,childptr,value); cJSON_AddItemToObject(parent,childptr,value);
} }
else
{
cJSON_Delete(value);
}
free(parentptr); free(parentptr);
return 0; return 0;
} }
......
...@@ -91,9 +91,16 @@ int main() ...@@ -91,9 +91,16 @@ int main()
nums=cJSON_CreateIntArray(numbers,10); nums=cJSON_CreateIntArray(numbers,10);
num6=cJSON_GetArrayItem(nums,6); num6=cJSON_GetArrayItem(nums,6);
cJSON_AddItemToObject(object,"numbers",nums); cJSON_AddItemToObject(object,"numbers",nums);
printf("Pointer: [%s]\n",cJSONUtils_FindPointerFromObjectTo(object,num6)); char *temp=cJSONUtils_FindPointerFromObjectTo(object,num6);
printf("Pointer: [%s]\n",cJSONUtils_FindPointerFromObjectTo(object,nums)); printf("Pointer: [%s]\n",temp);
printf("Pointer: [%s]\n",cJSONUtils_FindPointerFromObjectTo(object,object)); free(temp);
temp=cJSONUtils_FindPointerFromObjectTo(object,nums);
printf("Pointer: [%s]\n",temp);
free(temp);
temp=cJSONUtils_FindPointerFromObjectTo(object,object);
printf("Pointer: [%s]\n",temp);
free(temp);
cJSON_Delete(object);
/* JSON Sort test: */ /* JSON Sort test: */
sortme=cJSON_CreateObject(); sortme=cJSON_CreateObject();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册