summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2018-06-01 11:00:19 +1200
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2018-06-03 01:11:17 +0000
commita30f660db9b9765ab338bc48a29d55798c369efb (patch)
treec6c62ee3e65f115c6f268b8c37791b563f9b01ce
parent9a7850a7aaacdc9cbd41426ada6ef5ca4f167780 (diff)
downloadgnome-control-center-a30f660db9b9765ab338bc48a29d55798c369efb.tar.gz
sharing: Use g_auto for variables
-rw-r--r--panels/sharing/cc-media-sharing.c28
-rw-r--r--panels/sharing/cc-remote-login-helper.c114
-rw-r--r--panels/sharing/cc-remote-login.c100
-rw-r--r--panels/sharing/cc-sharing-networks.c20
-rw-r--r--panels/sharing/cc-sharing-panel.c86
-rw-r--r--panels/sharing/file-share-properties.c13
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);
}