diff options
-rw-r--r-- | src/glibext/configuration.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/glibext/configuration.c b/src/glibext/configuration.c index 09d2d37..8f2103d 100644 --- a/src/glibext/configuration.c +++ b/src/glibext/configuration.c @@ -1517,12 +1517,14 @@ GCfgParam *_g_generic_config_add_param(GGenConfig *config, GCfgParam *param, boo old = _g_generic_config_search(config, path, false); if (old != NULL) { - g_object_unref(G_OBJECT(param)); - return NULL; + g_clear_object(¶m); + goto exit; } config->params = g_list_append(config->params, param); + exit: + if (lock) g_generic_config_wunlock(config); |