|
@ -1852,28 +1852,8 @@ static cJSON *DetachItemFromArray(cJSON *array, size_t which) |
|
|
c = c->next; |
|
|
c = c->next; |
|
|
which--; |
|
|
which--; |
|
|
} |
|
|
} |
|
|
if (!c) |
|
|
|
|
|
{ |
|
|
|
|
|
/* item doesn't exist */ |
|
|
|
|
|
return NULL; |
|
|
|
|
|
} |
|
|
|
|
|
if (c->prev) |
|
|
|
|
|
{ |
|
|
|
|
|
/* not the first element */ |
|
|
|
|
|
c->prev->next = c->next; |
|
|
|
|
|
} |
|
|
|
|
|
if (c->next) |
|
|
|
|
|
{ |
|
|
|
|
|
c->next->prev = c->prev; |
|
|
|
|
|
} |
|
|
|
|
|
if (c==array->child) |
|
|
|
|
|
{ |
|
|
|
|
|
array->child = c->next; |
|
|
|
|
|
} |
|
|
|
|
|
/* make sure the detached item doesn't point anywhere anymore */ |
|
|
|
|
|
c->prev = c->next = NULL; |
|
|
|
|
|
|
|
|
|
|
|
return c; |
|
|
return cJSON_DetachItemViaPointer(array, c); |
|
|
} |
|
|
} |
|
|
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which) |
|
|
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which) |
|
|
{ |
|
|
{ |
|
@ -1892,19 +1872,13 @@ CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which) |
|
|
|
|
|
|
|
|
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string) |
|
|
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string) |
|
|
{ |
|
|
{ |
|
|
size_t i = 0; |
|
|
|
|
|
cJSON *c = object->child; |
|
|
cJSON *c = object->child; |
|
|
while (c && (case_insensitive_strcmp((unsigned char*)c->string, (const unsigned char*)string) != 0)) |
|
|
while (c && (case_insensitive_strcmp((unsigned char*)c->string, (const unsigned char*)string) != 0)) |
|
|
{ |
|
|
{ |
|
|
i++; |
|
|
|
|
|
c = c->next; |
|
|
c = c->next; |
|
|
} |
|
|
} |
|
|
if (c) |
|
|
|
|
|
{ |
|
|
|
|
|
return DetachItemFromArray(object, i); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return NULL; |
|
|
return cJSON_DetachItemViaPointer(object, c); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string) |
|
|
CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string) |
|
|