From 1bfaef2d15ded8c0401df079e32318ea409e6fbe Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Wed, 04 Oct 2017 18:26:51 -0400 Subject: mq_config_get_*(), mq_config_set_*(): Free duplicated group/key strings And fix return value of mq_config_get_double(). --- diff --git a/src/config.c b/src/config.c index 12b723e..19c06eb 100644 --- a/src/config.c +++ b/src/config.c @@ -139,13 +139,18 @@ mq_config_save(MqConfig *config) gboolean mq_config_get_boolean(MqConfig *config, const gchar *name) { - gchar *group; - gchar *key; + gchar *group; + gchar *key; + gboolean value; split_name(name, &group, &key); /* TODO: Handle value parsing errors? */ - return g_key_file_get_boolean(config->key_file, group, key, NULL); + value = g_key_file_get_boolean(config->key_file, group, key, NULL); + + g_free(group); + + return value; } gint @@ -153,23 +158,33 @@ mq_config_get_integer(MqConfig *config, const gchar *name) { gchar *group; gchar *key; + gint value; split_name(name, &group, &key); /* TODO: Handle value parsing errors? */ - return g_key_file_get_integer(config->key_file, group, key, NULL); + value = g_key_file_get_integer(config->key_file, group, key, NULL); + + g_free(group); + + return value; } -gboolean +gdouble mq_config_get_double(MqConfig *config, const gchar *name) { - gchar *group; - gchar *key; + gchar *group; + gchar *key; + gdouble value; split_name(name, &group, &key); /* TODO: Handle value parsing errors? */ - return g_key_file_get_double(config->key_file, group, key, NULL); + value = g_key_file_get_double(config->key_file, group, key, NULL); + + g_free(group); + + return value; } void @@ -182,6 +197,8 @@ mq_config_set_boolean(MqConfig *config, const gchar *name, gboolean value) g_key_file_set_boolean(config->key_file, group, key, value); + g_free(group); + set_type_or_run_callbacks(config, name, &value, TYPE_BOOLEAN); } @@ -195,6 +212,8 @@ mq_config_set_integer(MqConfig *config, const gchar *name, gint value) g_key_file_set_integer(config->key_file, group, key, value); + g_free(group); + set_type_or_run_callbacks(config, name, &value, TYPE_INTEGER); } @@ -208,6 +227,8 @@ mq_config_set_double(MqConfig *config, const gchar *name, gdouble value) g_key_file_set_double(config->key_file, group, key, value); + g_free(group); + set_type_or_run_callbacks(config, name, &value, TYPE_DOUBLE); } diff --git a/src/config.h b/src/config.h index a5a7bdc..20254e9 100644 --- a/src/config.h +++ b/src/config.h @@ -42,7 +42,7 @@ mq_config_get_boolean(MqConfig *config, const gchar *name); gint mq_config_get_integer(MqConfig *config, const gchar *name); -gboolean +gdouble mq_config_get_double(MqConfig *config, const gchar *name); void -- cgit v0.9.1