Skip to content

MAYBE cJSON_DeleteItemFromArray with BUG. #444

@postren

Description

@postren

`
int main()
{

cJSON* root = cJSON_Parse("{}");

cJSON* px = cJSON_AddArrayToObject(root, "rd");
cJSON* pj = cJSON_Parse("{\"a\":\"123\"}");
cJSON_AddItemToArray(px, pj);`

char* cc = cJSON_PrintUnformatted(root);
printf ("111=%s\n", cc);
free(cc);

pj = cJSON_Parse("{\"a\":\"456\"}");
cJSON_AddItemToArray(px, pj);

cc = cJSON_PrintUnformatted(root);
printf ("222=%s\n", cc);
free(cc);

cJSON_DeleteItemFromArray(px, 0);
cc = cJSON_PrintUnformatted(root);
printf ("333=%s\n", cc);
free(cc);

return 0;

}`

111={"rd":[{"a":"123"}]}
222={"rd":[{"a":"123"},{"a":"456"}]}
Failed here CPU 100%

`int main()
{
cJSON* root = cJSON_Parse("{}");
cJSON* px = cJSON_AddArrayToObject(root, "rd");
cJSON* pj = cJSON_Parse("{"a":"123"}");
cJSON_AddItemToArray(px, pj);
char* cc = cJSON_PrintUnformatted(root);
printf ("111=%s\n", cc);
free(cc);

pj = cJSON_Parse("{\"a\":\"456\"}");
cJSON_AddItemToArray(px, pj);

cc = cJSON_PrintUnformatted(root);
printf ("222=%s\n", cc);
free(cc);

cJSON_DeleteItemFromArray(px, 1);
cc = cJSON_PrintUnformatted(root);
printf ("333=%s\n", cc);
free(cc);

return 0;

}`

111={"rd":[{"a":"123"}]}
222={"rd":[{"a":"123"},{"a":"456"}]}
333={"rd":[{"a":"123"}]}

@DaveGamble

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions