diff options
author | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-01-07 16:33:05 +0100 |
---|---|---|
committer | Anna (navi) Figueiredo Gomes <navi@vlhl.dev> | 2024-01-07 16:33:05 +0100 |
commit | d6e6f2d72434c1aaaf8619e629b1fbbdd9cb638f (patch) | |
tree | 609b4d87b273cbc45fba981b49be5ffdf5107ff4 /src/object.c | |
parent | 32948c8a4605dd3718292642b04366a06011066c (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.c | 10 |
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; } } |