From efa068fea2abce553db768f4c4dac7d38e0f27bf Mon Sep 17 00:00:00 2001 From: jas <1790731762@qq.com> Date: Sun, 10 Dec 2023 22:24:27 +0800 Subject: [PATCH] =?UTF-8?q?[zhoulongyu]:=20=E8=B0=83=E7=94=A8=20config=5Fs?= =?UTF-8?q?etting=5Fadd=E5=89=8D,=20=E5=85=88=E8=B0=83=E7=94=A8config=5Fse?= =?UTF-8?q?tting=5Fget=5Fmember=20=E5=88=A4=E6=96=AD=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=B7=B2=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/Config/src/ConfigImpl.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/utils/Config/src/ConfigImpl.c b/utils/Config/src/ConfigImpl.c index 6939205e..0daee56d 100644 --- a/utils/Config/src/ConfigImpl.c +++ b/utils/Config/src/ConfigImpl.c @@ -58,7 +58,11 @@ static const StatusCode ConfigSetIntImpl(VConfig *cfg, const char *name, const i { config_setting_t *root, *setting; root = config_root_setting(&(((Config *)cfg)->cfg)); - setting = config_setting_add(root, name, CONFIG_TYPE_INT); + setting = config_setting_get_member(root, name); + if(!setting) + { + setting = config_setting_add(root, name, CONFIG_TYPE_INT); + } config_setting_set_int(setting, value); return CreateStatusCode(STATUS_CODE_OK); } @@ -77,7 +81,11 @@ static const StatusCode ConfigSetStringImpl(VConfig *cfg, const char *name, cons { config_setting_t *root, *setting; root = config_root_setting(&(((Config *)cfg)->cfg)); - setting = config_setting_add(root, name, CONFIG_TYPE_STRING); + setting = config_setting_get_member(root, name); + if(!setting) + { + setting = config_setting_add(root, name, CONFIG_TYPE_STRING); + } config_setting_set_string(setting, value); return CreateStatusCode(STATUS_CODE_OK); } @@ -92,7 +100,6 @@ static void ConfigImplInit(Config *cfg) cfg->close = ConfigClose; cfg->base.get_int = ConfigGetIntImpl; cfg->base.set_int = ConfigSetIntImpl; - cfg->base.get_string = ConfigGetStringImpl; cfg->base.set_string = ConfigSetStringImpl; cfg->base.save = ConfigSaveFileImpl;