mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
reformatting: cJSON_DetachItemFromArray
This commit is contained in:
parent
b602ef1cd5
commit
c636621779
33
cJSON.c
33
cJSON.c
@ -1709,9 +1709,38 @@ void cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *it
|
||||
cJSON_AddItemToObject(object, string, create_reference(item));
|
||||
}
|
||||
|
||||
cJSON *cJSON_DetachItemFromArray(cJSON *array, int which)
|
||||
{
|
||||
cJSON *c = array->child;
|
||||
while (c && (which > 0))
|
||||
{
|
||||
c = c->next;
|
||||
which--;
|
||||
}
|
||||
if (!c)
|
||||
{
|
||||
/* item doesn't exist */
|
||||
return 0;
|
||||
}
|
||||
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 = 0;
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
cJSON *cJSON_DetachItemFromArray(cJSON *array,int which) {cJSON *c=array->child;while (c && which>0) c=c->next,which--;if (!c) return 0;
|
||||
if (c->prev) c->prev->next=c->next;if (c->next) c->next->prev=c->prev;if (c==array->child) array->child=c->next;c->prev=c->next=0;return c;}
|
||||
void cJSON_DeleteItemFromArray(cJSON *array,int which) {cJSON_Delete(cJSON_DetachItemFromArray(array,which));}
|
||||
cJSON *cJSON_DetachItemFromObject(cJSON *object,const char *string) {int i=0;cJSON *c=object->child;while (c && cJSON_strcasecmp(c->string,string)) i++,c=c->next;if (c) return cJSON_DetachItemFromArray(object,i);return 0;}
|
||||
void cJSON_DeleteItemFromObject(cJSON *object,const char *string) {cJSON_Delete(cJSON_DetachItemFromObject(object,string));}
|
||||
|
Loading…
Reference in New Issue
Block a user