diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2018-06-01 11:00:19 +1200 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2018-06-03 01:11:17 +0000 |
commit | a30f660db9b9765ab338bc48a29d55798c369efb (patch) | |
tree | c6c62ee3e65f115c6f268b8c37791b563f9b01ce | |
parent | 9a7850a7aaacdc9cbd41426ada6ef5ca4f167780 (diff) | |
download | gnome-control-center-a30f660db9b9765ab338bc48a29d55798c369efb.tar.gz |
sharing: Use g_auto for variables
-rw-r--r-- | panels/sharing/cc-media-sharing.c | 28 | ||||
-rw-r--r-- | panels/sharing/cc-remote-login-helper.c | 114 | ||||
-rw-r--r-- | panels/sharing/cc-remote-login.c | 100 | ||||
-rw-r--r-- | panels/sharing/cc-sharing-networks.c | 20 | ||||
-rw-r--r-- | panels/sharing/cc-sharing-panel.c | 86 | ||||
-rw-r--r-- | panels/sharing/file-share-properties.c | 13 |
6 files changed, 139 insertions, 222 deletions
diff --git a/panels/sharing/cc-media-sharing.c b/panels/sharing/cc-media-sharing.c index 27b4a4736..51f1875d1 100644 --- a/panels/sharing/cc-media-sharing.c +++ b/panels/sharing/cc-media-sharing.c @@ -28,7 +28,7 @@ static GKeyFile* cc_media_sharing_open_key_file (void) { - gchar *path; + g_autofree gchar *path = NULL; GKeyFile *file; file = g_key_file_new (); @@ -39,22 +39,20 @@ cc_media_sharing_open_key_file (void) G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL)) { - g_free (path); - path = g_build_filename (SYSCONFDIR, "rygel.conf", NULL); - g_key_file_load_from_file (file, path, + g_autofree gchar *sysconf_path = NULL; + sysconf_path = g_build_filename (SYSCONFDIR, "rygel.conf", NULL); + g_key_file_load_from_file (file, sysconf_path, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, NULL); } - g_free (path); - return file; } void cc_media_sharing_get_preferences (gchar ***folders) { - GKeyFile *file; + g_autoptr(GKeyFile) file = NULL; file = cc_media_sharing_open_key_file (); @@ -62,7 +60,8 @@ cc_media_sharing_get_preferences (gchar ***folders) { gsize length; GPtrArray *array; - char **str_list, **orig_list; + GStrv str_list; + g_auto(GStrv) orig_list = NULL; str_list = g_key_file_get_string_list (file, "MediaExport", "uris", &length, NULL); @@ -91,20 +90,17 @@ cc_media_sharing_get_preferences (gchar ***folders) g_ptr_array_add (array, NULL); *folders = (char **) g_ptr_array_free (array, FALSE); - g_strfreev (orig_list); } - - g_key_file_free (file); } void cc_media_sharing_set_preferences (gchar **folders) { - GKeyFile *file; + g_autoptr(GKeyFile) file = NULL; gchar **str_list; - gchar *path; + g_autofree gchar *path = NULL; gsize length; - gchar *data; + g_autofree gchar *data = NULL; file = cc_media_sharing_open_key_file (); @@ -146,8 +142,4 @@ cc_media_sharing_set_preferences (gchar **folders) path = g_build_filename (g_get_user_config_dir (), "rygel.conf", NULL); g_file_set_contents (path, data, -1, NULL); - - g_free (path); - - g_key_file_free (file); } diff --git a/panels/sharing/cc-remote-login-helper.c b/panels/sharing/cc-remote-login-helper.c index 87c12f325..a9a07d0f8 100644 --- a/panels/sharing/cc-remote-login-helper.c +++ b/panels/sharing/cc-remote-login-helper.c @@ -30,19 +30,19 @@ static const gchar *service_list[] = { SSHD_SERVICE, NULL }; static gint enable_ssh_service () { - GDBusConnection *connection; - GError *error = NULL; - GVariant *temp_variant; + g_autoptr(GDBusConnection) connection = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(GVariant) start_result = NULL; + g_autoptr(GVariant) enable_result = NULL; connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); if (!connection) { g_critical ("Error connecting to D-Bus system bus: %s", error->message); - g_clear_error (&error); return 1; } - temp_variant = g_dbus_connection_call_sync (connection, + start_result = g_dbus_connection_call_sync (connection, "org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", @@ -56,98 +56,86 @@ enable_ssh_service () NULL, &error); - if (!temp_variant) + if (!start_result) { g_critical ("Error starting " SSHD_SERVICE ": %s", error->message); - g_clear_error (&error); return 1; } - g_variant_unref (temp_variant); - - temp_variant = g_dbus_connection_call_sync (connection, - "org.freedesktop.systemd1", - "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", - "EnableUnitFiles", - g_variant_new ("(^asbb)", - service_list, - FALSE, FALSE), - (GVariantType *) "(ba(sss))", - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - &error); - - if (!temp_variant) + enable_result = g_dbus_connection_call_sync (connection, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", + "EnableUnitFiles", + g_variant_new ("(^asbb)", + service_list, + FALSE, FALSE), + (GVariantType *) "(ba(sss))", + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &error); + + if (!enable_result) { g_critical ("Error enabling " SSHD_SERVICE ": %s", error->message); - g_clear_error (&error); return 1; } - g_variant_unref (temp_variant); - return 0; } static gint disable_ssh_service () { - GDBusConnection *connection; - GError *error = NULL; - GVariant *temp_variant; + g_autoptr(GDBusConnection) connection = NULL; + g_autoptr(GError) error = NULL; + g_autoptr(GVariant) stop_result = NULL; + g_autoptr(GVariant) disable_result = NULL; connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); if (!connection) { g_critical ("Error connecting to D-Bus system bus: %s", error->message); - g_clear_error (&error); return 1; } - temp_variant = g_dbus_connection_call_sync (connection, - "org.freedesktop.systemd1", - "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", - "StopUnit", - g_variant_new ("(ss)", SSHD_SERVICE, "replace"), - (GVariantType *) "(o)", - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - &error); - if (!temp_variant) + stop_result = g_dbus_connection_call_sync (connection, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", + "StopUnit", + g_variant_new ("(ss)", SSHD_SERVICE, "replace"), + (GVariantType *) "(o)", + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &error); + if (!stop_result) { g_critical ("Error stopping " SSHD_SERVICE ": %s", error->message); - g_clear_error (&error); return 1; } - g_variant_unref (temp_variant); - - temp_variant = g_dbus_connection_call_sync (connection, - "org.freedesktop.systemd1", - "/org/freedesktop/systemd1", - "org.freedesktop.systemd1.Manager", - "DisableUnitFiles", - g_variant_new ("(^asb)", service_list, FALSE, - FALSE), - (GVariantType *) "(a(sss))", - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - &error); - - if (!temp_variant) + disable_result = g_dbus_connection_call_sync (connection, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", + "DisableUnitFiles", + g_variant_new ("(^asb)", service_list, FALSE, + FALSE), + (GVariantType *) "(a(sss))", + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &error); + + if (!stop_result) { g_critical ("Error disabling " SSHD_SERVICE ": %s", error->message); - g_clear_error (&error); return 1; } - g_variant_unref (temp_variant); - return 0; } diff --git a/panels/sharing/cc-remote-login.c b/panels/sharing/cc-remote-login.c index e91fd5056..d185f7d09 100644 --- a/panels/sharing/cc-remote-login.c +++ b/panels/sharing/cc-remote-login.c @@ -32,6 +32,8 @@ typedef struct GCancellable *cancellable; } CallbackData; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (CallbackData, g_free) + static void set_switch_state (GtkSwitch *gtkswitch, gboolean active) @@ -48,12 +50,15 @@ set_switch_state (GtkSwitch *gtkswitch, static void active_state_ready_callback (GObject *source_object, GAsyncResult *result, - CallbackData *callback_data) + gpointer user_data) { - GVariant *active_variant, *child_variant, *tmp_variant; + g_autoptr(CallbackData) callback_data = user_data; + g_autoptr(GVariant) active_variant = NULL; + g_autoptr(GVariant) child_variant = NULL; + g_autoptr(GVariant) tmp_variant = NULL; const gchar *active_state; gboolean active; - GError *error = NULL; + g_autoptr(GError) error = NULL; active_variant = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), result, &error); @@ -65,9 +70,6 @@ active_state_ready_callback (GObject *source_object, if (!g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Error getting remote login state: %s", error->message); - g_clear_error (&error); - g_free (callback_data); - /* the switch will be remain insensitive, since the current state could * not be determined */ return; @@ -79,25 +81,21 @@ active_state_ready_callback (GObject *source_object, active = g_str_equal (active_state, "active"); - g_variant_unref (tmp_variant); - g_variant_unref (child_variant); - g_variant_unref (active_variant); - /* set the switch to the correct state */ if (callback_data->gtkswitch) set_switch_state (callback_data->gtkswitch, active); - - g_free (callback_data); } static void path_ready_callback (GObject *source_object, GAsyncResult *result, - CallbackData *callback_data) + gpointer user_data) { - GVariant *path_variant, *child_variant; + g_autoptr(CallbackData) callback_data = user_data; + g_autoptr(GVariant) path_variant = NULL; + g_autoptr(GVariant) child_variant = NULL; const gchar *object_path; - GError *error = NULL; + g_autoptr(GError) error = NULL; path_variant = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), result, &error); @@ -105,24 +103,15 @@ path_ready_callback (GObject *source_object, if (!path_variant) { if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - { - g_free (callback_data); - g_clear_error (&error); - - return; - } + return; /* this may fail if systemd or remote login service is not available */ g_debug ("Error getting remote login state: %s", error->message); - g_clear_error (&error); - /* hide the remote login button, since the service is not available */ if (callback_data->button) gtk_widget_hide (callback_data->button); - g_free (callback_data); - return; } @@ -141,45 +130,36 @@ path_ready_callback (GObject *source_object, G_DBUS_CALL_FLAGS_NONE, -1, callback_data->cancellable, - (GAsyncReadyCallback) active_state_ready_callback, + active_state_ready_callback, callback_data); - - g_variant_unref (child_variant); - g_variant_unref (path_variant); + g_steal_pointer (&callback_data); } static void state_ready_callback (GObject *source_object, GAsyncResult *result, - CallbackData *callback_data) + gpointer user_data) { - GVariant *state_variant, *child_variant; + g_autoptr(CallbackData) callback_data = user_data; + g_autoptr(GVariant) state_variant = NULL; + g_autoptr(GVariant) child_variant = NULL; const gchar *state_string; - GError *error = NULL; + g_autoptr(GError) error = NULL; state_variant = g_dbus_connection_call_finish (G_DBUS_CONNECTION (source_object), result, &error); if (!state_variant) { if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - { - g_free (callback_data); - g_clear_error (&error); - - return; - } + return; /* this may fail if systemd or remote login service is not available */ g_debug ("Error getting remote login state: %s", error->message); - g_clear_error (&error); - /* hide the remote login button, since the service is not available */ if (callback_data->button) gtk_widget_hide (callback_data->button); - g_free (callback_data); - return; } @@ -199,35 +179,30 @@ state_ready_callback (GObject *source_object, G_DBUS_CALL_FLAGS_NONE, -1, callback_data->cancellable, - (GAsyncReadyCallback) path_ready_callback, + path_ready_callback, callback_data); + g_steal_pointer (&callback_data); } else if (g_str_equal (state_string, "disabled")) { /* service is available, but is currently disabled */ set_switch_state (callback_data->gtkswitch, FALSE); - - g_free (callback_data); } else { /* unknown state */ g_warning ("Unknown state %s for %s", state_string, SSHD_SERVICE); - - g_free (callback_data); } - - g_variant_unref (child_variant); - g_variant_unref (state_variant); } static void bus_ready_callback (GObject *source_object, GAsyncResult *result, - CallbackData *callback_data) + gpointer user_data) { - GDBusConnection *connection; - GError *error = NULL; + g_autoptr(CallbackData) callback_data = user_data; + g_autoptr(GDBusConnection) connection = NULL; + g_autoptr(GError) error = NULL; connection = g_bus_get_finish (result, &error); @@ -235,8 +210,6 @@ bus_ready_callback (GObject *source_object, { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Error getting remote login state: %s", error->message); - g_clear_error (&error); - g_free (callback_data); return; } @@ -251,8 +224,9 @@ bus_ready_callback (GObject *source_object, G_DBUS_CALL_FLAGS_NONE, -1, callback_data->cancellable, - (GAsyncReadyCallback) state_ready_callback, + state_ready_callback, callback_data); + g_steal_pointer (&callback_data); } void @@ -271,7 +245,7 @@ cc_remote_login_get_enabled (GCancellable *cancellable, callback_data->cancellable = cancellable; g_bus_get (G_BUS_TYPE_SYSTEM, callback_data->cancellable, - (GAsyncReadyCallback) bus_ready_callback, callback_data); + bus_ready_callback, callback_data); } static gint std_err; @@ -281,7 +255,7 @@ child_watch_func (GPid pid, gint status, gpointer user_data) { - CallbackData *callback_data = user_data; + g_autoptr(CallbackData) callback_data = user_data; if (status != 0) { g_warning ("Error enabling or disabling remote login service"); @@ -292,8 +266,6 @@ child_watch_func (GPid pid, g_spawn_close_pid (pid); gtk_widget_set_sensitive (GTK_WIDGET (callback_data->gtkswitch), TRUE); - - g_free (user_data); } void @@ -302,11 +274,10 @@ cc_remote_login_set_enabled (GCancellable *cancellable, { gchar *command[] = { "pkexec", LIBEXECDIR "/cc-remote-login-helper", NULL, NULL }; - GError *error = NULL; + g_autoptr(GError) error = NULL; GPid pid; CallbackData *callback_data; - if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (gtkswitch), "set-from-dbus")) == 1) { g_object_set_data (G_OBJECT (gtkswitch), "set-from-dbus", NULL); @@ -331,8 +302,5 @@ cc_remote_login_set_enabled (GCancellable *cancellable, g_child_watch_add (pid, child_watch_func, callback_data); if (error) - { - g_error ("Error running cc-remote-login-helper: %s", error->message); - g_clear_error (&error); - } + g_error ("Error running cc-remote-login-helper: %s", error->message); } diff --git a/panels/sharing/cc-sharing-networks.c b/panels/sharing/cc-sharing-networks.c index 6064db3be..628530ed5 100644 --- a/panels/sharing/cc-sharing-networks.c +++ b/panels/sharing/cc-sharing-networks.c @@ -102,10 +102,10 @@ cc_sharing_networks_update_status (CcSharingNetworks *self) static void cc_sharing_update_networks (CcSharingNetworks *self) { - GVariant *networks; + g_autoptr(GVariant) networks = NULL; char *uuid, *network_name, *carrier_type; GVariantIter iter; - GError *error = NULL; + g_autoptr(GError) error = NULL; g_list_free_full (self->networks, cc_sharing_network_free); self->networks = NULL; @@ -115,7 +115,6 @@ cc_sharing_update_networks (CcSharingNetworks *self) g_dbus_proxy_set_cached_property (G_DBUS_PROXY (self->proxy), "SharingStatus", g_variant_new_uint32 (GSD_SHARING_STATUS_OFFLINE)); - g_error_free (error); cc_list_box_adjust_scrolling (GTK_LIST_BOX (self->listbox)); return; } @@ -132,8 +131,6 @@ cc_sharing_update_networks (CcSharingNetworks *self) } self->networks = g_list_reverse (self->networks); cc_list_box_adjust_scrolling (GTK_LIST_BOX (self->listbox)); - - g_variant_unref (networks); } static void @@ -141,7 +138,7 @@ cc_sharing_networks_remove_network (GtkWidget *button, CcSharingNetworks *self) { GtkWidget *row; - GError *error = NULL; + g_autoptr(GError) error = NULL; gboolean ret; const char *uuid; @@ -153,11 +150,9 @@ cc_sharing_networks_remove_network (GtkWidget *button, uuid, NULL, &error); - if (!ret) { + if (!ret) g_warning ("Failed to remove service %s: %s", self->service_name, error->message); - g_error_free (error); - } cc_sharing_update_networks (self); cc_sharing_update_networks_box (self); @@ -169,7 +164,7 @@ cc_sharing_networks_enable_network (GtkSwitch *widget, gpointer user_data) { CcSharingNetworks *self = user_data; - GError *error = NULL; + g_autoptr(GError) error = NULL; gboolean ret; if (state) { @@ -190,7 +185,6 @@ cc_sharing_networks_enable_network (GtkSwitch *widget, } else { g_warning ("Failed to %s service %s: %s", state ? "enable" : "disable", self->service_name, error->message); - g_error_free (error); g_signal_handlers_block_by_func (widget, cc_sharing_networks_enable_network, self); gtk_switch_set_active (widget, !state); @@ -321,7 +315,8 @@ cc_sharing_update_networks_box (CcSharingNetworks *self) { gboolean current_visible; const char *current_network; - GList *children, *l; + g_autoptr(GList) children = NULL; + GList *l; children = gtk_container_get_children (GTK_CONTAINER (self->listbox)); for (l = children; l != NULL; l = l->next) { @@ -331,7 +326,6 @@ cc_sharing_update_networks_box (CcSharingNetworks *self) row != self->no_network_row) gtk_widget_destroy (row); } - g_list_free (children); current_network = gsd_sharing_get_current_network (self->proxy); diff --git a/panels/sharing/cc-sharing-panel.c b/panels/sharing/cc-sharing-panel.c index c7ea62c1f..07bff5034 100644 --- a/panels/sharing/cc-sharing-panel.c +++ b/panels/sharing/cc-sharing-panel.c @@ -226,7 +226,8 @@ cc_sharing_panel_main_list_box_row_activated (GtkListBox *listbox, GtkListBoxRow *row, CcSharingPanel *self) { - gchar *widget_name, *found; + g_autofree gchar *widget_name = NULL; + gchar *found; widget_name = g_strdup (gtk_buildable_get_name (GTK_BUILDABLE (row))); @@ -239,14 +240,11 @@ cc_sharing_panel_main_list_box_row_activated (GtkListBox *listbox, found = g_strrstr (widget_name, "button"); if (!found) - goto out; + return; memcpy (found, "dialog", 6); cc_sharing_panel_run_dialog (self, widget_name); - -out: - g_free (widget_name); } static gboolean @@ -364,7 +362,7 @@ cc_sharing_panel_add_folder (GtkListBox *box, CcSharingPanel *self) { GtkWidget *dialog; - gchar *folder = NULL; + g_autofree gchar *folder = NULL; gboolean matching = FALSE; GList *rows, *l; @@ -418,7 +416,6 @@ cc_sharing_panel_add_folder (GtkListBox *box, cc_list_box_adjust_scrolling (GTK_LIST_BOX (box)); bail: - g_free (folder); gtk_widget_destroy (dialog); } @@ -438,7 +435,7 @@ cc_sharing_panel_media_sharing_dialog_response (GtkDialog *dialog, gint reponse_id, CcSharingPanel *self) { - GPtrArray *folders; + g_autoptr(GPtrArray) folders = NULL; GtkWidget *box; GList *rows, *l; @@ -459,8 +456,6 @@ cc_sharing_panel_media_sharing_dialog_response (GtkDialog *dialog, g_ptr_array_add (folders, NULL); cc_media_sharing_set_preferences ((gchar **) folders->pdata); - - g_ptr_array_free (folders, TRUE); } #define ICON_NAME_FOLDER "folder-symbolic" @@ -505,14 +500,14 @@ cc_sharing_panel_new_media_sharing_row (const char *uri_or_path, { GtkWidget *row, *box, *w; GUserDirectory dir = G_USER_N_DIRECTORIES; - GIcon *icon; + g_autoptr(GIcon) icon = NULL; guint i; - char *basename, *path; - GFile *file; + g_autofree gchar *basename = NULL; + g_autofree gchar *path = NULL; + g_autoptr(GFile) file = NULL; file = g_file_new_for_commandline_arg (uri_or_path); path = g_file_get_path (file); - g_object_unref (file); row = gtk_list_box_row_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); @@ -534,12 +529,10 @@ cc_sharing_panel_new_media_sharing_row (const char *uri_or_path, w = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU); gtk_widget_set_margin_end (w, 12); gtk_container_add (GTK_CONTAINER (box), w); - g_object_unref (icon); /* Label */ basename = g_filename_display_basename (path); w = gtk_label_new (basename); - g_free (basename); gtk_container_add (GTK_CONTAINER (box), w); /* Remove button */ @@ -554,7 +547,7 @@ cc_sharing_panel_new_media_sharing_row (const char *uri_or_path, G_CALLBACK (cc_sharing_panel_remove_folder), self); g_object_set_data (G_OBJECT (w), "row", row); - g_object_set_data_full (G_OBJECT (row), "path", path, g_free); + g_object_set_data_full (G_OBJECT (row), "path", g_steal_pointer (&path), g_free); gtk_widget_show_all (row); @@ -588,9 +581,10 @@ cc_sharing_panel_new_add_media_sharing_row (CcSharingPanel *self) static void cc_sharing_panel_setup_media_sharing_dialog (CcSharingPanel *self) { - gchar **folders, **list; + g_auto(GStrv) folders = NULL; + GStrv list; GtkWidget *box, *networks, *grid, *w; - char *path; + g_autofree gchar *path = NULL; path = g_find_program_in_path ("rygel"); if (path == NULL) @@ -598,7 +592,6 @@ cc_sharing_panel_setup_media_sharing_dialog (CcSharingPanel *self) gtk_widget_hide (WID ("media-sharing-button")); return; } - g_free (path); g_signal_connect (WID ("media-sharing-dialog"), "response", G_CALLBACK (cc_sharing_panel_media_sharing_dialog_response), @@ -630,9 +623,6 @@ cc_sharing_panel_setup_media_sharing_dialog (CcSharingPanel *self) g_signal_connect (G_OBJECT (box), "row-activated", G_CALLBACK (cc_sharing_panel_add_folder), self); - - g_strfreev (folders); - networks = cc_sharing_networks_new (self->sharing_proxy, "rygel"); grid = WID ("grid4"); gtk_grid_attach (GTK_GRID (grid), networks, 0, 4, 2, 1); @@ -676,7 +666,7 @@ cc_sharing_panel_setup_label (CcSharingPanel *self, GtkWidget *label, const gchar *hostname) { - gchar *text; + g_autofree gchar *text = NULL; if (label == WID ("personal-file-sharing-label")) text = g_strdup_printf (_("File Sharing allows you to share your Public folder with others on your current network using: <a href=\"dav://%s\">dav://%s</a>"), hostname, hostname); @@ -688,8 +678,6 @@ cc_sharing_panel_setup_label (CcSharingPanel *self, g_assert_not_reached (); gtk_label_set_label (GTK_LABEL (label), text); - - g_free (text); } typedef struct @@ -698,13 +686,17 @@ typedef struct GtkWidget *label; } GetHostNameData; +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GetHostNameData, g_free); + static void -cc_sharing_panel_get_host_name_fqdn_done (GDBusConnection *connection, +cc_sharing_panel_get_host_name_fqdn_done (GObject *object, GAsyncResult *res, - GetHostNameData *data) + gpointer user_data) { - GError *error = NULL; - GVariant *variant; + GDBusConnection *connection = G_DBUS_CONNECTION (object); + g_autoptr(GetHostNameData) data = user_data; + g_autoptr(GError) error = NULL; + g_autoptr(GVariant) variant = NULL; const gchar *fqdn; variant = g_dbus_connection_call_finish (connection, res, &error); @@ -716,36 +708,29 @@ cc_sharing_panel_get_host_name_fqdn_done (GDBusConnection *connection, if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - gchar *hostname; + g_autofree gchar *hostname = NULL; hostname = cc_hostname_entry_get_hostname (CC_HOSTNAME_ENTRY (data->panel->hostname_entry)); cc_sharing_panel_setup_label (data->panel, data->label, hostname); - - g_free (hostname); } - g_free (data); - g_error_free (error); return; } g_variant_get (variant, "(&s)", &fqdn); cc_sharing_panel_setup_label (data->panel, data->label, fqdn); - - g_variant_unref (variant); - g_object_unref (connection); - g_free (data); } static void cc_sharing_panel_bus_ready (GObject *object, GAsyncResult *res, - GetHostNameData *data) + gpointer user_data) { - GDBusConnection *connection; - GError *error = NULL; + g_autoptr(GDBusConnection) connection = NULL; + g_autoptr(GetHostNameData) data = user_data; + g_autoptr(GError) error = NULL; connection = g_bus_get_finish (res, &error); @@ -755,17 +740,13 @@ cc_sharing_panel_bus_ready (GObject *object, if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - gchar *hostname; + g_autofree gchar *hostname = NULL; hostname = cc_hostname_entry_get_hostname (CC_HOSTNAME_ENTRY (data->panel->hostname_entry)); cc_sharing_panel_setup_label (data->panel, data->label, hostname); - - g_free (hostname); } - g_error_free (error); - g_free (data); return; } @@ -779,8 +760,9 @@ cc_sharing_panel_bus_ready (GObject *object, G_DBUS_CALL_FLAGS_NONE, -1, data->panel->hostname_cancellable, - (GAsyncReadyCallback) cc_sharing_panel_get_host_name_fqdn_done, + cc_sharing_panel_get_host_name_fqdn_done, data); + g_steal_pointer (&data); } @@ -818,7 +800,7 @@ cc_sharing_panel_setup_label_with_hostname (CcSharingPanel *self, get_hostname_data->label = label; g_bus_get (G_BUS_TYPE_SYSTEM, self->hostname_cancellable, - (GAsyncReadyCallback) cc_sharing_panel_bus_ready, + cc_sharing_panel_bus_ready, get_hostname_data); } @@ -926,7 +908,7 @@ cc_sharing_panel_check_schema_available (CcSharingPanel *self, const gchar *schema_id) { GSettingsSchemaSource *source; - GSettingsSchema *schema; + g_autoptr(GSettingsSchema) schema = NULL; source = g_settings_schema_source_get_default (); if (!source) @@ -936,7 +918,6 @@ cc_sharing_panel_check_schema_available (CcSharingPanel *self, if (!schema) return FALSE; - g_settings_schema_unref (schema); return TRUE; } @@ -1110,13 +1091,12 @@ sharing_proxy_ready (GObject *source, { CcSharingPanel *self; GDBusProxy *proxy; - GError *error = NULL; + g_autoptr(GError) error = NULL; proxy = G_DBUS_PROXY (gsd_sharing_proxy_new_for_bus_finish (res, &error)); if (!proxy) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) g_warning ("Failed to get sharing proxy: %s", error->message); - g_error_free (error); return; } diff --git a/panels/sharing/file-share-properties.c b/panels/sharing/file-share-properties.c index 1be0d7ab0..dcf741c5d 100644 --- a/panels/sharing/file-share-properties.c +++ b/panels/sharing/file-share-properties.c @@ -35,17 +35,15 @@ void file_share_write_out_password (const char *password) { - char *to_hash; - char *ascii_digest; - char *line; - char *filename; + g_autofree gchar *to_hash = NULL; + g_autofree gchar *ascii_digest = NULL; + g_autofree gchar *line = NULL; + g_autofree gchar *filename = NULL; FILE *file; to_hash = g_strdup_printf ("%s:%s:%s", USER, REALM, password); ascii_digest = g_compute_checksum_for_string (G_CHECKSUM_MD5, to_hash, strlen (to_hash)); - g_free (to_hash); line = g_strdup_printf ("%s:%s:%s\n", USER, REALM, ascii_digest); - g_free (ascii_digest); filename = g_build_filename (g_get_user_config_dir (), "user-share", "passwd", NULL); @@ -54,7 +52,4 @@ file_share_write_out_password (const char *password) fwrite (line, strlen (line), 1, file); fclose (file); } - - g_free (filename); - g_free (line); } |