[gnome-control-center] common: Use g_auto for variables



commit 86d1d30c631ab68fb80779bf7d6dc558689a9e7c
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Jun 1 12:45:24 2018 +1200

    common: Use g_auto for variables

 panels/common/cc-common-language.c      | 83 ++++++++++++---------------------
 panels/common/cc-hostname-entry.c       | 83 ++++++++++++---------------------
 panels/common/cc-language-chooser.c     | 33 +++++--------
 panels/common/cc-util.c                 | 21 ++++-----
 panels/common/gsd-device-manager-udev.c | 34 ++++++--------
 panels/common/gsd-device-manager-x11.c  |  5 +-
 panels/common/gsd-device-manager.c      | 10 ++--
 panels/common/gsd-input-helper.c        |  5 +-
 panels/common/hostname-helper.c         | 49 +++++++------------
 panels/common/list-box-helper.c         |  4 +-
 tests/common/test-hostname.c            | 51 ++++++++------------
 11 files changed, 134 insertions(+), 244 deletions(-)
---
diff --git a/panels/common/cc-common-language.c b/panels/common/cc-common-language.c
index 4ea4f06ad..9357c3e73 100644
--- a/panels/common/cc-common-language.c
+++ b/panels/common/cc-common-language.c
@@ -43,22 +43,20 @@ iter_for_language (GtkTreeModel *model,
                    GtkTreeIter  *iter,
                    gboolean      region)
 {
-        char *l;
-        char *name;
-        char *language;
+        g_autofree gchar *name = NULL;
 
         g_assert (gtk_tree_model_get_iter_first (model, iter));
         do {
+                g_autofree gchar *l = NULL;
                 gtk_tree_model_get (model, iter, LOCALE_COL, &l, -1);
-                if (g_strcmp0 (l, lang) == 0) {
-                        g_free (l);
+                if (g_strcmp0 (l, lang) == 0)
                         return TRUE;
-                }
-                g_free (l);
         } while (gtk_tree_model_iter_next (model, iter));
 
         name = gnome_normalize_locale (lang);
         if (name != NULL) {
+                g_autofree gchar *language = NULL;
+
                 if (region) {
                         language = gnome_get_country_from_locale (name, NULL);
                 }
@@ -72,8 +70,6 @@ iter_for_language (GtkTreeModel *model,
                                                    LOCALE_COL, name,
                                                    DISPLAY_LOCALE_COL, language,
                                                    -1);
-                g_free (name);
-                g_free (language);
                 return TRUE;
         }
 
@@ -91,12 +87,12 @@ cc_common_language_get_iter_for_language (GtkTreeModel *model,
 gboolean
 cc_common_language_has_font (const gchar *locale)
 {
-        const FcCharSet *charset;
-        FcPattern       *pattern;
-        FcObjectSet     *object_set;
-        FcFontSet       *font_set;
-        gchar           *language_code;
-        gboolean         is_displayable;
+        const FcCharSet  *charset;
+        FcPattern        *pattern;
+        FcObjectSet      *object_set;
+        FcFontSet        *font_set;
+        g_autofree gchar *language_code = NULL;
+        gboolean          is_displayable;
 
         is_displayable = FALSE;
         pattern = NULL;
@@ -141,8 +137,6 @@ cc_common_language_has_font (const gchar *locale)
         if (pattern != NULL)
                 FcPatternDestroy (pattern);
 
-        g_free (language_code);
-
         return is_displayable;
 }
 
@@ -150,12 +144,11 @@ gchar *
 cc_common_language_get_current_language (void)
 {
         gchar *language;
-        char *path;
+        g_autofree gchar *path = NULL;
         const gchar *locale;
 
        path = g_strdup_printf ("/org/freedesktop/Accounts/User%d", getuid ());
         language = get_lang_for_user_object_path (path);
-        g_free (path);
         if (language != NULL && *language != '\0')
                 return language;
 
@@ -171,9 +164,9 @@ cc_common_language_get_current_language (void)
 static char *
 get_lang_for_user_object_path (const char *path)
 {
-       GError *error = NULL;
-       GDBusProxy *user;
-       GVariant *props;
+       g_autoptr(GError) error = NULL;
+       g_autoptr(GDBusProxy) user = NULL;
+       g_autoptr(GVariant) props = NULL;
        char *lang;
 
        user = cc_object_storage_create_dbus_proxy_sync (G_BUS_TYPE_SYSTEM,
@@ -186,19 +179,14 @@ get_lang_for_user_object_path (const char *path)
        if (user == NULL) {
                g_warning ("Failed to get proxy for user '%s': %s",
                           path, error->message);
-               g_error_free (error);
                return NULL;
        }
 
        props = g_dbus_proxy_get_cached_property (user, "Language");
-       if (props == NULL) {
-               g_object_unref (user);
+       if (props == NULL)
                return NULL;
-       }
        lang = g_variant_dup_string (props, NULL);
 
-       g_variant_unref (props);
-       g_object_unref (user);
        return lang;
 }
 
@@ -210,31 +198,24 @@ static void
 insert_language (GHashTable *ht,
                  const char *lang)
 {
-        char *label_own_lang;
-        char *label_current_lang;
-        char *label_untranslated;
-        char *key;
+        g_autofree gchar *label_own_lang = NULL;
+        g_autofree gchar *label_current_lang = NULL;
+        g_autofree gchar *label_untranslated = NULL;
 
-        key = g_strdup (lang);
-
-        label_own_lang = gnome_get_language_from_locale (key, key);
-        label_current_lang = gnome_get_language_from_locale (key, NULL);
-        label_untranslated = gnome_get_language_from_locale (key, "C");
+        label_own_lang = gnome_get_language_from_locale (lang, lang);
+        label_current_lang = gnome_get_language_from_locale (lang, NULL);
+        label_untranslated = gnome_get_language_from_locale (lang, "C");
 
         /* We don't have a translation for the label in
          * its own language? */
         if (g_strcmp0 (label_own_lang, label_untranslated) == 0) {
                 if (g_strcmp0 (label_current_lang, label_untranslated) == 0)
-                        g_hash_table_insert (ht, key, g_strdup (label_untranslated));
+                        g_hash_table_insert (ht, g_strdup (lang), g_strdup (label_untranslated));
                 else
-                        g_hash_table_insert (ht, key, g_strdup (label_current_lang));
+                        g_hash_table_insert (ht, g_strdup (lang), g_strdup (label_current_lang));
         } else {
-                g_hash_table_insert (ht, key, g_strdup (label_own_lang));
+                g_hash_table_insert (ht, g_strdup (lang), g_strdup (label_own_lang));
         }
-
-        g_free (label_own_lang);
-        g_free (label_current_lang);
-        g_free (label_untranslated);
 }
 
 GHashTable *
@@ -277,7 +258,7 @@ foreach_user_lang_cb (gpointer key,
 void
 cc_common_language_add_user_languages (GtkTreeModel *model)
 {
-        char *name;
+        g_autofree gchar *name = NULL;
         GtkTreeIter iter;
         GtkListStore *store = GTK_LIST_STORE (model);
         GHashTable *user_langs;
@@ -291,20 +272,17 @@ cc_common_language_add_user_languages (GtkTreeModel *model)
         name = cc_common_language_get_current_language ();
         display = g_hash_table_lookup (user_langs, name);
         if (!display) {
-                char *language = NULL;
-                char *country = NULL;
-                char *codeset = NULL;
+                g_autofree gchar *language = NULL;
+                g_autofree gchar *country = NULL;
+                g_autofree gchar *codeset = NULL;
 
                 gnome_parse_locale (name, &language, &country, &codeset, NULL);
-                g_free (name);
 
                 if (!codeset || !g_str_equal (codeset, "UTF-8"))
                         g_warning ("Current user locale codeset isn't UTF-8");
 
+                g_free (name);
                 name = g_strdup_printf ("%s_%s.UTF-8", language, country);
-                g_free (language);
-                g_free (country);
-                g_free (codeset);
 
                 insert_language (user_langs, name);
                 display = g_hash_table_lookup (user_langs, name);
@@ -313,7 +291,6 @@ cc_common_language_add_user_languages (GtkTreeModel *model)
         gtk_list_store_append (store, &iter);
         gtk_list_store_set (store, &iter, LOCALE_COL, name, DISPLAY_LOCALE_COL, display, -1);
         g_hash_table_remove (user_langs, name);
-        g_free (name);
 
         /* The rest of the languages */
         g_hash_table_foreach (user_langs, (GHFunc) foreach_user_lang_cb, store);
diff --git a/panels/common/cc-hostname-entry.c b/panels/common/cc-hostname-entry.c
index 0b0d6d10c..dc2f3e7ef 100644
--- a/panels/common/cc-hostname-entry.c
+++ b/panels/common/cc-hostname-entry.c
@@ -39,58 +39,43 @@ G_DEFINE_TYPE (CcHostnameEntry, cc_hostname_entry, GTK_TYPE_ENTRY)
 static void
 cc_hostname_entry_set_hostname (CcHostnameEntry *self)
 {
-  char *hostname;
-  GVariant *variant;
-  GError *error = NULL;
+  g_autofree gchar *hostname = NULL;
+  g_autoptr(GVariant) pretty_result = NULL;
+  g_autoptr(GVariant) static_result = NULL;
+  g_autoptr(GError) pretty_error = NULL;
+  g_autoptr(GError) static_error = NULL;
   const gchar *text;
 
   text = gtk_entry_get_text (GTK_ENTRY (self));
 
   g_debug ("Setting PrettyHostname to '%s'", text);
-  variant = g_dbus_proxy_call_sync (self->hostnamed_proxy,
-                                    "SetPrettyHostname",
-                                    g_variant_new ("(sb)", text, FALSE),
-                                    G_DBUS_CALL_FLAGS_NONE,
-                                    -1, NULL, &error);
-  if (variant == NULL)
-    {
-      g_warning ("Could not set PrettyHostname: %s", error->message);
-      g_error_free (error);
-      error = NULL;
-    }
-  else
-    {
-      g_variant_unref (variant);
-    }
+  pretty_result = g_dbus_proxy_call_sync (self->hostnamed_proxy,
+                                          "SetPrettyHostname",
+                                          g_variant_new ("(sb)", text, FALSE),
+                                          G_DBUS_CALL_FLAGS_NONE,
+                                          -1, NULL, &pretty_error);
+  if (pretty_result == NULL)
+    g_warning ("Could not set PrettyHostname: %s", pretty_error->message);
 
   /* Set the static hostname */
   hostname = pretty_hostname_to_static (text, FALSE);
   g_assert (hostname);
 
   g_debug ("Setting StaticHostname to '%s'", hostname);
-  variant = g_dbus_proxy_call_sync (self->hostnamed_proxy,
-                                    "SetStaticHostname",
-                                    g_variant_new ("(sb)", hostname, FALSE),
-                                    G_DBUS_CALL_FLAGS_NONE,
-                                    -1, NULL, &error);
-  if (variant == NULL)
-    {
-      g_warning ("Could not set StaticHostname: %s", error->message);
-      g_error_free (error);
-    }
-  else
-    {
-      g_variant_unref (variant);
-    }
-  g_free (hostname);
+  static_result = g_dbus_proxy_call_sync (self->hostnamed_proxy,
+                                          "SetStaticHostname",
+                                          g_variant_new ("(sb)", hostname, FALSE),
+                                          G_DBUS_CALL_FLAGS_NONE,
+                                          -1, NULL, &static_error);
+  if (static_result == NULL)
+    g_warning ("Could not set StaticHostname: %s", static_error->message);
 }
 
 static char *
 get_hostname_property (CcHostnameEntry *self,
                        const char      *property)
 {
-  GVariant *variant;
-  char *str;
+  g_autoptr(GVariant) variant = NULL;
 
   if (!self->hostnamed_proxy)
     return g_strdup ("");
@@ -99,8 +84,8 @@ get_hostname_property (CcHostnameEntry *self,
                                               property);
   if (!variant)
     {
-      GError *error = NULL;
-      GVariant *inner;
+      g_autoptr(GError) error = NULL;
+      g_autoptr(GVariant) inner = NULL;
 
       /* Work around systemd-hostname not sending us back
        * the property value when changing values */
@@ -114,39 +99,31 @@ get_hostname_property (CcHostnameEntry *self,
       if (variant == NULL)
         {
           g_warning ("Failed to get property '%s': %s", property, error->message);
-          g_error_free (error);
           return NULL;
         }
 
       g_variant_get (variant, "(v)", &inner);
-      str = g_variant_dup_string (inner, NULL);
-      g_variant_unref (variant);
+      return g_variant_dup_string (inner, NULL);
     }
   else
     {
-      str = g_variant_dup_string (variant, NULL);
-      g_variant_unref (variant);
+      return g_variant_dup_string (variant, NULL);
     }
-
-  return str;
 }
 
 static char *
 cc_hostname_entry_get_display_hostname (CcHostnameEntry  *self)
 {
-  char *str;
+  g_autofree gchar *str = NULL;
 
   str = get_hostname_property (self, "PrettyHostname");
 
   /* Empty strings means that we need to fallback */
   if (str != NULL &&
       *str == '\0')
-    {
-      g_free (str);
-      str = get_hostname_property (self, "Hostname");
-    }
+    return get_hostname_property (self, "Hostname");
 
-  return str;
+  return g_steal_pointer (&str);
 }
 
 static gboolean
@@ -205,8 +182,8 @@ cc_hostname_entry_constructed (GObject *object)
 {
   CcHostnameEntry *self = CC_HOSTNAME_ENTRY (object);
   GPermission *permission;
-  GError *error = NULL;
-  char *str;
+  g_autoptr(GError) error = NULL;
+  g_autofree gchar *str = NULL;
 
   permission = polkit_permission_new_sync ("org.freedesktop.hostname1.set-static-hostname",
                                            NULL, NULL, NULL);
@@ -246,7 +223,6 @@ cc_hostname_entry_constructed (GObject *object)
   if (self->hostnamed_proxy == NULL)
     {
       g_debug ("Couldn't get hostnamed to start, bailing: %s", error->message);
-      g_error_free (error);
       return;
     }
 
@@ -256,7 +232,6 @@ cc_hostname_entry_constructed (GObject *object)
     gtk_entry_set_text (GTK_ENTRY (self), str);
   else
     gtk_entry_set_text (GTK_ENTRY (self), "");
-  g_free (str);
 
   g_signal_connect (G_OBJECT (self), "changed", G_CALLBACK (text_changed_cb), self);
 }
diff --git a/panels/common/cc-language-chooser.c b/panels/common/cc-language-chooser.c
index 04a93fbe7..afdd7c548 100644
--- a/panels/common/cc-language-chooser.c
+++ b/panels/common/cc-language-chooser.c
@@ -201,9 +201,9 @@ language_visible (GtkListBoxRow *row,
 {
         GtkDialog *chooser = user_data;
         CcLanguageChooserPrivate *priv = GET_PRIVATE (chooser);
-        gchar *locale_name = NULL;
-        gchar *locale_current_name = NULL;
-        gchar *locale_untranslated_name = NULL;
+        g_autofree gchar *locale_name = NULL;
+        g_autofree gchar *locale_current_name = NULL;
+        g_autofree gchar *locale_untranslated_name = NULL;
         gboolean is_extra;
         gboolean visible;
 
@@ -218,29 +218,21 @@ language_visible (GtkListBoxRow *row,
         if (!priv->filter_words)
                 return TRUE;
 
-        visible = FALSE;
-
         locale_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), "locale-name"));
         visible = match_all (priv->filter_words, locale_name);
         if (visible)
-                goto out;
+                return TRUE;
 
         locale_current_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), 
"locale-current-name"));
         visible = match_all (priv->filter_words, locale_current_name);
         if (visible)
-                goto out;
+                return TRUE;
 
         locale_untranslated_name =
                 cc_util_normalize_casefold_and_unaccent (g_object_get_data (G_OBJECT (row), 
"locale-untranslated-name"));
-        visible = match_all (priv->filter_words, locale_untranslated_name);
-
-out:
-        g_free (locale_untranslated_name);
-        g_free (locale_current_name);
-        g_free (locale_name);
-        return visible;
+        return match_all (priv->filter_words, locale_untranslated_name);
 }
 
 static gint
@@ -266,7 +258,7 @@ static void
 filter_changed (GtkDialog *chooser)
 {
         CcLanguageChooserPrivate *priv = GET_PRIVATE (chooser);
-        gchar *filter_contents = NULL;
+        g_autofree gchar *filter_contents = NULL;
 
         g_clear_pointer (&priv->filter_words, g_strfreev);
 
@@ -278,7 +270,6 @@ filter_changed (GtkDialog *chooser)
                 return;
         }
         priv->filter_words = g_strsplit_set (g_strstrip (filter_contents), " ", 0);
-        g_free (filter_contents);
         gtk_list_box_set_placeholder (GTK_LIST_BOX (priv->language_list), priv->no_results);
         gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->language_list));
 }
@@ -305,7 +296,8 @@ set_locale_id (GtkDialog *chooser,
                const gchar       *locale_id)
 {
         CcLanguageChooserPrivate *priv = GET_PRIVATE (chooser);
-        GList *children, *l;
+        g_autoptr(GList) children = NULL;
+        GList *l;
 
         children = gtk_container_get_children (GTK_CONTAINER (priv->language_list));
         for (l = children; l; l = l->next) {
@@ -330,7 +322,6 @@ set_locale_id (GtkDialog *chooser,
                         gtk_widget_set_opacity (check, 0.0);
                 }
         }
-        g_list_free (children);
 
         g_free (priv->language);
         priv->language = g_strdup (locale_id);
@@ -397,18 +388,16 @@ cc_language_chooser_private_free (gpointer data)
 GtkWidget *
 cc_language_chooser_new (GtkWidget *parent)
 {
-        GtkBuilder *builder;
+        g_autoptr(GtkBuilder) builder = NULL;
         GtkWidget *chooser;
         CcLanguageChooserPrivate *priv;
-        GError *error = NULL;
+        g_autoptr(GError) error = NULL;
 
         g_resources_register (cc_common_get_resource ());
 
         builder = gtk_builder_new ();
         if (gtk_builder_add_from_resource (builder, "/org/gnome/control-center/common/language-chooser.ui", 
&error) == 0) {
-                g_object_unref (builder);
                 g_warning ("failed to load language chooser: %s", error->message);
-                g_error_free (error);
                 return NULL;
         }
 
diff --git a/panels/common/cc-util.c b/panels/common/cc-util.c
index 7bff79b4c..d64125362 100644
--- a/panels/common/cc-util.c
+++ b/panels/common/cc-util.c
@@ -46,7 +46,8 @@
 char *
 cc_util_normalize_casefold_and_unaccent (const char *str)
 {
-  char *normalized, *tmp;
+  g_autofree gchar *normalized = NULL;
+  gchar *tmp;
   int i = 0, j = 0, ilen;
 
   if (str == NULL)
@@ -54,7 +55,6 @@ cc_util_normalize_casefold_and_unaccent (const char *str)
 
   normalized = g_utf8_normalize (str, -1, G_NORMALIZE_NFKD);
   tmp = g_utf8_casefold (normalized, -1);
-  g_free (normalized);
 
   ilen = strlen (tmp);
 
@@ -110,8 +110,8 @@ cc_util_normalize_casefold_and_unaccent (const char *str)
 char *
 cc_util_get_smart_date (GDateTime *date)
 {
-        gchar *label;
-        GDateTime *today, *local;
+        g_autoptr(GDateTime) today = NULL;
+        g_autoptr(GDateTime) local = NULL;
         GTimeSpan span;
 
         /* Set today date */
@@ -124,28 +124,23 @@ cc_util_get_smart_date (GDateTime *date)
         span = g_date_time_difference (today, date);
         if (span <= 0)
           {
-            label = g_strdup (_("Today"));
+            return g_strdup (_("Today"));
           }
         else if (span <= G_TIME_SPAN_DAY)
           {
-            label = g_strdup (_("Yesterday"));
+            return g_strdup (_("Yesterday"));
           }
         else
           {
             if (g_date_time_get_year (date) == g_date_time_get_year (today))
               {
                 /* Translators: This is a date format string in the style of "Feb 24". */
-                label = g_date_time_format (date, _("%b %e"));
+                return g_date_time_format (date, _("%b %e"));
               }
             else
               {
                 /* Translators: This is a date format string in the style of "Feb 24, 2013". */
-                label = g_date_time_format (date, _("%b %e, %Y"));
+                return g_date_time_format (date, _("%b %e, %Y"));
               }
           }
-
-        g_date_time_unref (local);
-        g_date_time_unref (today);
-
-        return label;
 }
diff --git a/panels/common/gsd-device-manager-udev.c b/panels/common/gsd-device-manager-udev.c
index 3b001649a..3811e37fb 100644
--- a/panels/common/gsd-device-manager-udev.c
+++ b/panels/common/gsd-device-manager-udev.c
@@ -78,8 +78,7 @@ create_device (GUdevDevice *udev_device)
 {
        const gchar *vendor, *product, *name;
        guint width, height;
-       GUdevDevice *parent;
-       GsdDevice *device;
+       g_autoptr(GUdevDevice) parent = NULL;
 
        parent = g_udev_device_get_parent (udev_device);
        g_assert (parent != NULL);
@@ -96,19 +95,15 @@ create_device (GUdevDevice *udev_device)
        width = g_udev_device_get_property_as_int (udev_device, "ID_INPUT_WIDTH_MM");
        height = g_udev_device_get_property_as_int (udev_device, "ID_INPUT_HEIGHT_MM");
 
-       device = g_object_new (GSD_TYPE_DEVICE,
-                              "name", name,
-                              "device-file", g_udev_device_get_device_file (udev_device),
-                              "type", udev_device_get_device_type (udev_device),
-                              "vendor-id", vendor,
-                              "product-id", product,
-                              "width", width,
-                              "height", height,
-                              NULL);
-
-       g_object_unref (parent);
-
-       return device;
+       return g_object_new (GSD_TYPE_DEVICE,
+                            "name", name,
+                            "device-file", g_udev_device_get_device_file (udev_device),
+                            "type", udev_device_get_device_type (udev_device),
+                            "vendor-id", vendor,
+                            "product-id", product,
+                            "width", width,
+                            "height", height,
+                            NULL);
 }
 
 static void
@@ -166,7 +161,8 @@ static void
 gsd_udev_device_manager_init (GsdUdevDeviceManager *manager)
 {
        const gchar *subsystems[] = { "input", NULL };
-       GList *devices, *l;
+       g_autoptr(GList) devices = NULL;
+       GList *l;
 
        manager->devices = g_hash_table_new_full (NULL, NULL,
                                                  (GDestroyNotify) g_object_unref,
@@ -180,15 +176,11 @@ gsd_udev_device_manager_init (GsdUdevDeviceManager *manager)
                                                    subsystems[0]);
 
        for (l = devices; l; l = l->next) {
-               GUdevDevice *device = l->data;
+               g_autoptr(GUdevDevice) device = l->data;
 
                if (device_is_evdev (device))
                        add_device (manager, device);
-
-               g_object_unref (device);
        }
-
-       g_list_free (devices);
 }
 
 static void
diff --git a/panels/common/gsd-device-manager-x11.c b/panels/common/gsd-device-manager-x11.c
index e39725134..0d262fe83 100644
--- a/panels/common/gsd-device-manager-x11.c
+++ b/panels/common/gsd-device-manager-x11.c
@@ -144,15 +144,14 @@ static void
 init_devices (GsdX11DeviceManager *manager,
              GdkDeviceType        device_type)
 {
-       GList *devices, *l;
+       g_autoptr(GList) devices = NULL;
+       GList *l;
 
        devices = gdk_device_manager_list_devices (manager->device_manager,
                                                   device_type);
 
        for (l = devices; l; l = l->next)
                add_device (manager, l->data);
-
-       g_list_free (devices);
 }
 
 static void
diff --git a/panels/common/gsd-device-manager.c b/panels/common/gsd-device-manager.c
index 2593b4e2d..8ea56c064 100644
--- a/panels/common/gsd-device-manager.c
+++ b/panels/common/gsd-device-manager.c
@@ -333,9 +333,8 @@ GSettings *
 gsd_device_get_settings (GsdDevice *device)
 {
        const gchar *schema = NULL, *vendor, *product;
-       GSettings *settings;
        GsdDeviceType type;
-       gchar *path = NULL;
+       g_autofree gchar *path = NULL;
 
        g_return_val_if_fail (GSD_IS_DEVICE (device), NULL);
 
@@ -362,13 +361,10 @@ gsd_device_get_settings (GsdDevice *device)
        }
 
        if (path) {
-               settings = g_settings_new_with_path (schema, path);
-               g_free (path);
+               return g_settings_new_with_path (schema, path);
        } else {
-               settings = g_settings_new (schema);
+               return g_settings_new (schema);
        }
-
-       return settings;
 }
 
 const gchar *
diff --git a/panels/common/gsd-input-helper.c b/panels/common/gsd-input-helper.c
index 410059995..3f037a31e 100644
--- a/panels/common/gsd-input-helper.c
+++ b/panels/common/gsd-input-helper.c
@@ -157,9 +157,8 @@ supports_xinput2_devices (int *opcode)
 static gboolean
 device_type_is_present (GsdDeviceType type)
 {
-        GList *l = gsd_device_manager_list_devices (gsd_device_manager_get (),
-                                                    type);
-        g_list_free (l);
+        g_autoptr(GList) l = gsd_device_manager_list_devices (gsd_device_manager_get (),
+                                                              type);
         return l != NULL;
 }
 
diff --git a/panels/common/hostname-helper.c b/panels/common/hostname-helper.c
index df596975e..34af6a51e 100644
--- a/panels/common/hostname-helper.c
+++ b/panels/common/hostname-helper.c
@@ -97,15 +97,15 @@ remove_duplicate_dashes (char *input)
        return input;
 }
 
-#define CHECK  if (is_empty (result)) goto bail
+#define CHECK  if (is_empty (result)) return g_strdup ("localhost")
 
 char *
 pretty_hostname_to_static (const char *pretty,
                           gboolean    for_display)
 {
-       char *result;
-       char *valid_chars;
-       char *composed;
+       g_autofree gchar *result = NULL;
+       g_autofree gchar *valid_chars = NULL;
+       g_autofree gchar *composed = NULL;
 
        g_return_val_if_fail (pretty != NULL, NULL);
        g_return_val_if_fail (g_utf8_validate (pretty, -1, NULL), NULL);
@@ -117,56 +117,45 @@ pretty_hostname_to_static (const char *pretty,
        /* Transform the pretty hostname to ASCII */
        result = g_str_to_ascii (composed, NULL);
        g_debug ("\ttranslit: '%s'", result);
-       g_free (composed);
 
        CHECK;
 
        /* Remove apostrophes */
-       result = remove_apostrophes (result);
+       remove_apostrophes (result);
        g_debug ("\tapostrophes: '%s'", result);
 
        CHECK;
 
        /* Remove all the not-allowed chars */
        valid_chars = allowed_chars ();
-       result = g_strcanon (result, valid_chars, '-');
-       g_free (valid_chars);
+       g_strcanon (result, valid_chars, '-');
        g_debug ("\tcanon: '%s'", result);
 
        CHECK;
 
        /* Remove the leading dashes */
-       result = remove_leading_dashes (result);
+       remove_leading_dashes (result);
        g_debug ("\tleading: '%s'", result);
 
        CHECK;
 
        /* Remove trailing dashes */
-       result = remove_trailing_dashes (result);
+       remove_trailing_dashes (result);
        g_debug ("\ttrailing: '%s'", result);
 
        CHECK;
 
        /* Remove duplicate dashes */
-       result = remove_duplicate_dashes (result);
+       remove_duplicate_dashes (result);
        g_debug ("\tduplicate: '%s'", result);
 
        CHECK;
 
        /* Lower case */
-       if (!for_display) {
-               char *tmp;
+       if (!for_display)
+               return g_ascii_strdown (result, -1);
 
-               tmp = g_ascii_strdown (result, -1);
-               g_free (result);
-               result = tmp;
-       }
-
-       return result;
-
-bail:
-       g_free (result);
-       return g_strdup ("localhost");
+       return g_steal_pointer (&result);
 }
 #undef CHECK
 
@@ -176,7 +165,6 @@ char *
 pretty_hostname_to_ssid (const char *pretty)
 {
        const char *p, *prev;
-       char *ret = NULL;
 
        if (pretty == NULL || *pretty == '\0') {
                pretty = g_get_host_name ();
@@ -186,7 +174,7 @@ pretty_hostname_to_ssid (const char *pretty)
 
        if (pretty == NULL) {
                /* translators: This is the default hotspot name, need to be less than 32-bytes */
-               ret = g_strdup (C_("hotspot", "Hotspot"));
+               gchar *ret = g_strdup (C_("hotspot", "Hotspot"));
                g_assert (strlen (ret) <= SSID_MAX_LEN);
                return ret;
        }
@@ -200,12 +188,10 @@ pretty_hostname_to_ssid (const char *pretty)
                        break;
 
                if (p - pretty > SSID_MAX_LEN) {
-                       ret = g_strndup (pretty, prev - pretty);
-                       break;
+                       return g_strndup (pretty, prev - pretty);
                }
                if (p - pretty == SSID_MAX_LEN) {
-                       ret = g_strndup (pretty, p - pretty);
-                       break;
+                       return g_strndup (pretty, p - pretty);
                }
 
                if (*p == '\0')
@@ -214,8 +200,5 @@ pretty_hostname_to_ssid (const char *pretty)
                prev = p;
        }
 
-       if (ret == NULL)
-               ret = g_strdup (pretty);
-
-       return ret;
+       return g_strdup (pretty);
 }
diff --git a/panels/common/list-box-helper.c b/panels/common/list-box-helper.c
index 415cdde94..77b1f6556 100644
--- a/panels/common/list-box-helper.c
+++ b/panels/common/list-box-helper.c
@@ -89,7 +89,7 @@ void
 cc_list_box_adjust_scrolling (GtkListBox *listbox)
 {
   GtkWidget *scrolled_window;
-  GList *children;
+  g_autoptr(GList) children = NULL;
   guint n_rows, num_max_rows;
 
   scrolled_window = g_object_get_data (G_OBJECT (listbox), "cc-scrolling-scrolled-window");
@@ -123,8 +123,6 @@ cc_list_box_adjust_scrolling (GtkListBox *listbox)
       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
                                       GTK_POLICY_NEVER, GTK_POLICY_NEVER);
     }
-
-  g_list_free (children);
 }
 
 void
diff --git a/tests/common/test-hostname.c b/tests/common/test-hostname.c
index 4e14f715a..0e3a3aee8 100644
--- a/tests/common/test-hostname.c
+++ b/tests/common/test-hostname.c
@@ -9,10 +9,9 @@
 static void
 test_hostname (void)
 {
-       char *contents;
-       char *result;
+       g_autofree gchar *contents = NULL;
        guint i;
-       char **lines;
+       g_auto(GStrv) lines = NULL;
 
        if (g_file_get_contents (TEST_SRCDIR "/hostnames-test.txt", &contents, NULL, NULL) == FALSE) {
                g_warning ("Failed to load '%s'", TEST_SRCDIR "/hostnames-test.txt");
@@ -28,8 +27,10 @@ test_hostname (void)
        }
 
        for (i = 0; lines[i] != NULL; i++) {
-               char *utf8;
-               char **items;
+               g_auto(GStrv) items = NULL;
+               g_autofree gchar *utf8 = NULL;
+               g_autofree gchar *result1 = NULL;
+               g_autofree gchar *result2 = NULL;
 
                if (*lines[i] == '#')
                        continue;
@@ -38,44 +39,35 @@ test_hostname (void)
 
                items = g_strsplit (lines[i], "\t", -1);
                utf8 = g_locale_from_utf8 (items[0], -1, NULL, NULL, NULL);
-               result = pretty_hostname_to_static (items[0], FALSE);
-               if (g_strcmp0 (result, items[2]) != 0) {
+
+               result1 = pretty_hostname_to_static (items[0], FALSE);
+               if (g_strcmp0 (result1, items[2]) != 0) {
                        g_error ("Result for '%s' doesn't match '%s' (got: '%s')",
-                                utf8, items[2], result);
+                                utf8, items[2], result1);
                        g_test_fail ();
                } else {
                        g_debug ("Result for '%s' matches '%s'",
-                                utf8, result);
+                                utf8, result1);
                }
-               g_free (result);
-               g_free (utf8);
 
-               result = pretty_hostname_to_static (items[0], TRUE);
-               utf8 = g_locale_from_utf8 (items[0], -1, NULL, NULL, NULL);
-               if (g_strcmp0 (result, items[1]) != 0) {
+               result2 = pretty_hostname_to_static (items[0], TRUE);
+               if (g_strcmp0 (result2, items[1]) != 0) {
                        g_error ("Result for '%s' doesn't match '%s' (got: '%s')",
-                                utf8, items[1], result);
+                                utf8, items[1], result2);
                        g_test_fail ();
                } else {
                        g_debug ("Result for '%s' matches '%s'",
-                                utf8, result);
+                                utf8, result2);
                }
-               g_free (result);
-               g_free (utf8);
-
-               g_strfreev (items);
        }
-
-       g_strfreev (lines);
-       g_free (contents);
 }
 
 static void
 test_ssid (void)
 {
-       char *contents;
+       g_autofree gchar *contents = NULL;
        guint i;
-       char **lines;
+       g_auto(GStrv) lines = NULL;
 
        if (g_file_get_contents (TEST_SRCDIR "/ssids-test.txt", &contents, NULL, NULL) == FALSE) {
                g_warning ("Failed to load '%s'", TEST_SRCDIR "/ssids-test.txt");
@@ -91,8 +83,8 @@ test_ssid (void)
        }
 
        for (i = 0; lines[i] != NULL; i++) {
-               char *ssid;
-               char **items;
+               g_autofree gchar *ssid = NULL;
+               g_auto(GStrv) items = NULL;
 
                if (*lines[i] == '#')
                        continue;
@@ -102,12 +94,7 @@ test_ssid (void)
                items = g_strsplit (lines[i], "\t", -1);
                ssid = pretty_hostname_to_ssid (items[0]);
                g_assert_cmpstr (ssid, ==, items[1]);
-               g_free (ssid);
-               g_strfreev (items);
        }
-
-       g_strfreev (lines);
-       g_free (contents);
 }
 
 int main (int argc, char **argv)


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