summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
authorAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-01-07 16:33:05 +0100
committerAnna (navi) Figueiredo Gomes <navi@vlhl.dev>2024-01-07 16:33:05 +0100
commitd6e6f2d72434c1aaaf8619e629b1fbbdd9cb638f (patch)
tree609b4d87b273cbc45fba981b49be5ffdf5107ff4 /src/object.c
parent32948c8a4605dd3718292642b04366a06011066c (diff)
fix overwriting object keys
removes the implicit call to json_detach (via json_delete), and sets the parent field on the src obj Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
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;
}
}