summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/object.c b/src/object.c
index b380008..7178bdd 100644
--- a/src/object.c
+++ b/src/object.c
@@ -27,9 +27,15 @@ void add_to_object(struct json *dest, char *key, struct json *src) {
if (strcmp(e->key, key) == 0) {
src->index = e->index;
dest->children->items[i] = src;
+ src->parent = dest;
- adjust_pointers(e, src);
- json_delete(e);
+ src->prev = e->prev;
+ src->next = e->next;
+ if (e->prev) e->prev->next = src;
+ if (e->next) e->next->prev = src;
+
+ json_clear(e);
+ free(e);
return;
}
}