gkeyfile: Eliminate unnecessary allocations when setting booleans

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
Philip Withnall 2021-03-14 13:57:22 +00:00
parent f71db39284
commit cba8d59737

View File

@ -599,7 +599,7 @@ static gdouble g_key_file_parse_value_as_double (GKeyFile
static gboolean g_key_file_parse_value_as_boolean (GKeyFile *key_file, static gboolean g_key_file_parse_value_as_boolean (GKeyFile *key_file,
const gchar *value, const gchar *value,
GError **error); GError **error);
static gchar *g_key_file_parse_boolean_as_value (GKeyFile *key_file, static const gchar *g_key_file_parse_boolean_as_value (GKeyFile *key_file,
gboolean value); gboolean value);
static gchar *g_key_file_parse_value_as_comment (GKeyFile *key_file, static gchar *g_key_file_parse_value_as_comment (GKeyFile *key_file,
const gchar *value, const gchar *value,
@ -2556,13 +2556,12 @@ g_key_file_set_boolean (GKeyFile *key_file,
const gchar *key, const gchar *key,
gboolean value) gboolean value)
{ {
gchar *result; const gchar *result;
g_return_if_fail (key_file != NULL); g_return_if_fail (key_file != NULL);
result = g_key_file_parse_boolean_as_value (key_file, value); result = g_key_file_parse_boolean_as_value (key_file, value);
g_key_file_set_value (key_file, group_name, key, result); g_key_file_set_value (key_file, group_name, key, result);
g_free (result);
} }
/** /**
@ -2673,14 +2672,12 @@ g_key_file_set_boolean_list (GKeyFile *key_file,
value_list = g_string_sized_new (length * 8); value_list = g_string_sized_new (length * 8);
for (i = 0; i < length; i++) for (i = 0; i < length; i++)
{ {
gchar *value; const gchar *value;
value = g_key_file_parse_boolean_as_value (key_file, list[i]); value = g_key_file_parse_boolean_as_value (key_file, list[i]);
g_string_append (value_list, value); g_string_append (value_list, value);
g_string_append_c (value_list, key_file->list_separator); g_string_append_c (value_list, key_file->list_separator);
g_free (value);
} }
g_key_file_set_value (key_file, group_name, key, value_list->str); g_key_file_set_value (key_file, group_name, key, value_list->str);
@ -4578,14 +4575,14 @@ g_key_file_parse_value_as_boolean (GKeyFile *key_file,
return FALSE; return FALSE;
} }
static gchar * static const gchar *
g_key_file_parse_boolean_as_value (GKeyFile *key_file, g_key_file_parse_boolean_as_value (GKeyFile *key_file,
gboolean value) gboolean value)
{ {
if (value) if (value)
return g_strdup ("true"); return "true";
else else
return g_strdup ("false"); return "false";
} }
static gchar * static gchar *