From ace7db492bd6fd5ae445c240942a5df09bf1a7a0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 14 Jan 2025 13:06:26 -0800 Subject: [PATCH] fix nil-cases of cfg insertion; fix incorrect root setting in cfg deep copy --- src/raddbg/raddbg_core.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index b2fa13d4..ab694bef 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -635,14 +635,14 @@ rd_cfg_deep_copy(RD_Cfg *src_root) for(RD_Cfg *src = src_root; src != &rd_nil_cfg; src = rec.next) { RD_Cfg *dst = rd_cfg_new(dst_parent, src->string); + if(dst_root == &rd_nil_cfg) + { + dst_root = dst; + } rec = rd_cfg_rec__depth_first(src_root, src); if(rec.push_count > 0) { dst_parent = dst; - if(dst_root == &rd_nil_cfg) - { - dst_root = dst; - } } else for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1) { @@ -677,8 +677,11 @@ rd_cfg_equip_stringf(RD_Cfg *cfg, char *fmt, ...) internal void rd_cfg_insert_child(RD_Cfg *parent, RD_Cfg *prev_child, RD_Cfg *new_child) { - DLLInsert_NPZ(&rd_nil_cfg, parent->first, parent->last, prev_child, new_child, next, prev); - new_child->parent = parent; + if(parent != &rd_nil_cfg) + { + DLLInsert_NPZ(&rd_nil_cfg, parent->first, parent->last, prev_child, new_child, next, prev); + new_child->parent = parent; + } } internal void