summaryrefslogtreecommitdiff
path: root/src/glibext/configuration.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/configuration.h')
-rw-r--r--src/glibext/configuration.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/src/glibext/configuration.h b/src/glibext/configuration.h
index afefed1..aac6dc7 100644
--- a/src/glibext/configuration.h
+++ b/src/glibext/configuration.h
@@ -105,7 +105,7 @@ void g_config_param_reset(GCfgParam *);
void g_config_param_set_value(GCfgParam *, ...);
/* Indique la valeur courante d'un paramètre de configuration. */
-void g_config_param_get_value(GCfgParam *, ...);
+void g_config_param_get_value(const GCfgParam *, ...);
@@ -191,6 +191,7 @@ void g_generic_config_add_group(GGenConfig *, GCfgGroup *);
GCfgGroup *__group; \
__group = g_config_group_new(p, t); \
g_generic_config_add_group(c, __group); \
+ g_object_unref(G_OBJECT(__group)); \
})
@@ -205,7 +206,10 @@ GCfgParam *_g_generic_config_search(GGenConfig *, const char *, bool);
GCfgParam *__param; \
__param = g_generic_config_search(c, p); \
if (__param != NULL) \
+ { \
g_config_param_set_value(__param, v); \
+ g_object_unref(G_OBJECT(__param)); \
+ } \
__param != NULL ? true : false; \
})
@@ -214,51 +218,63 @@ GCfgParam *_g_generic_config_search(GGenConfig *, const char *, bool);
GCfgParam *__param; \
__param = g_generic_config_search(c, p); \
if (__param != NULL) \
+ { \
g_config_param_get_value(__param, v); \
+ g_object_unref(G_OBJECT(__param)); \
+ } \
__param != NULL ? true : false; \
})
/* Ajoute un paramètre à une configuration. */
-GCfgParam *_g_generic_config_add_param(GGenConfig *, GCfgParam *, bool);
+bool _g_generic_config_add_param(GGenConfig *, GCfgParam *, bool);
#define g_generic_config_add_param(c, p) _g_generic_config_add_param(c, p, true)
#define g_generic_config_create_param(c, p, t, d) \
({ \
- GCfgParam *__result; \
- __result = g_config_param_new(p, t, d); \
- __result = g_generic_config_add_param(c, __result); \
+ bool __result; \
+ GCfgParam *__param; \
+ __param = g_config_param_new(p, t, d); \
+ __result = g_generic_config_add_param(c, __param); \
+ g_object_unref(G_OBJECT(__param)); \
__result; \
})
#define g_generic_config_create_param_if_not_exist(c, p, t, d) \
({ \
- GCfgParam *__result; \
- __result = g_generic_config_search(c, p); \
- if (__result == NULL) \
+ bool __result; \
+ GCfgParam *__param; \
+ __param = g_generic_config_search(c, p); \
+ if (__param == NULL) \
{ \
- __result = g_config_param_new(p, t, d); \
- __result = g_generic_config_add_param(c, __result); \
+ __param = g_config_param_new(p, t, d); \
+ __result = g_generic_config_add_param(c, __param); \
} \
+ else \
+ __result = true; \
+ g_object_unref(G_OBJECT(__param)); \
__result; \
})
#define g_generic_config_create_or_udpdate_param(c, p, t, d, v) \
({ \
+ bool __result; \
GCfgParam *__param; \
__param = g_generic_config_search(c, p); \
if (__param == NULL) \
{ \
__param = g_config_param_new(p, t, d); \
- __param = g_generic_config_add_param(c, __param); \
+ __result = g_generic_config_add_param(c, __param); \
} \
- if (__param != NULL) \
- g_config_param_set_value(__param, v); \
- __param != NULL ? true : false; \
+ else \
+ __result = true; \
+ g_config_param_set_value(__param, v); \
+ g_object_unref(G_OBJECT(__param)); \
+ __result; \
})