[glib: 4/17] gkeyfile: Eliminate unnecessary allocations when setting booleans




commit cba8d59737780e61e7d8e2a7ed3eb898e6857445
Author: Philip Withnall <pwithnall endlessos org>
Date:   Sun Mar 14 13:57:22 2021 +0000

    gkeyfile: Eliminate unnecessary allocations when setting booleans
    
    Signed-off-by: Philip Withnall <pwithnall endlessos org>

 glib/gkeyfile.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)
---
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 9dd806cb7..2fee51324 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -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,
                                                                const gchar            *value,
                                                                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);
 static gchar                *g_key_file_parse_value_as_comment (GKeyFile               *key_file,
                                                                 const gchar            *value,
@@ -2556,13 +2556,12 @@ g_key_file_set_boolean (GKeyFile    *key_file,
                        const gchar *key,
                        gboolean     value)
 {
-  gchar *result;
+  const gchar *result;
 
   g_return_if_fail (key_file != NULL);
 
   result = g_key_file_parse_boolean_as_value (key_file, value);
   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);
   for (i = 0; i < length; i++)
     {
-      gchar *value;
+      const gchar *value;
 
       value = g_key_file_parse_boolean_as_value (key_file, list[i]);
 
       g_string_append (value_list, value);
       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);
@@ -4578,14 +4575,14 @@ g_key_file_parse_value_as_boolean (GKeyFile     *key_file,
   return FALSE;
 }
 
-static gchar *
+static const gchar *
 g_key_file_parse_boolean_as_value (GKeyFile *key_file,
                                   gboolean  value)
 {
   if (value)
-    return g_strdup ("true");
+    return "true";
   else
-    return g_strdup ("false");
+    return "false";
 }
 
 static gchar *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]