wacom: Use g_auto for variables

This commit is contained in:
Robert Ancell 2018-06-03 10:22:08 +04:00 committed by Robert Ancell
parent af1ffd76e1
commit dab5f5301f
10 changed files with 107 additions and 241 deletions

View file

@ -44,54 +44,49 @@ G_DEFINE_TYPE (CcTabletToolMap, cc_tablet_tool_map, G_TYPE_OBJECT)
static void static void
load_keyfiles (CcTabletToolMap *map) load_keyfiles (CcTabletToolMap *map)
{ {
GError *error = NULL; g_autoptr(GError) devices_error = NULL;
gchar *dir; g_autoptr(GError) tools_error = NULL;
g_autofree gchar *dir = NULL;
dir = g_build_filename (g_get_user_cache_dir (), "gnome-control-center", "wacom", NULL); dir = g_build_filename (g_get_user_cache_dir (), "gnome-control-center", "wacom", NULL);
if (g_mkdir_with_parents (dir, 0700) < 0) { if (g_mkdir_with_parents (dir, 0700) < 0) {
g_warning ("Could not create directory '%s', expect stylus mapping oddities: %m", dir); g_warning ("Could not create directory '%s', expect stylus mapping oddities: %m", dir);
g_free (dir);
return; return;
} }
map->tablet_path = g_build_filename (dir, "devices", NULL); map->tablet_path = g_build_filename (dir, "devices", NULL);
g_key_file_load_from_file (map->tablets, map->tablet_path, g_key_file_load_from_file (map->tablets, map->tablet_path,
G_KEY_FILE_NONE, &error); G_KEY_FILE_NONE, &devices_error);
if (error && !g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) { if (devices_error && !g_error_matches (devices_error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
g_warning ("Could not load tablets keyfile '%s': %s", g_warning ("Could not load tablets keyfile '%s': %s",
map->tablet_path, error->message); map->tablet_path, devices_error->message);
} }
g_clear_error (&error);
map->tool_path = g_build_filename (dir, "tools", NULL); map->tool_path = g_build_filename (dir, "tools", NULL);
g_key_file_load_from_file (map->tools, map->tool_path, g_key_file_load_from_file (map->tools, map->tool_path,
G_KEY_FILE_NONE, &error); G_KEY_FILE_NONE, &tools_error);
if (error && !g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) { if (tools_error && !g_error_matches (tools_error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
g_warning ("Could not load tools keyfile '%s': %s", g_warning ("Could not load tools keyfile '%s': %s",
map->tool_path, error->message); map->tool_path, tools_error->message);
} }
g_clear_error (&error);
g_free (dir);
} }
static void static void
cache_tools (CcTabletToolMap *map) cache_tools (CcTabletToolMap *map)
{ {
gchar **serials; g_auto(GStrv) serials = NULL;
gsize n_serials, i; gsize n_serials, i;
serials = g_key_file_get_groups (map->tools, &n_serials); serials = g_key_file_get_groups (map->tools, &n_serials);
for (i = 0; i < n_serials; i++) { for (i = 0; i < n_serials; i++) {
gchar *str, *end; g_autofree gchar *str = NULL;
gchar *end;
guint64 serial, id; guint64 serial, id;
GError *error = NULL; g_autoptr(GError) error = NULL;
CcWacomTool *tool; CcWacomTool *tool;
serial = g_ascii_strtoull (serials[i], &end, 16); serial = g_ascii_strtoull (serials[i], &end, 16);
@ -102,26 +97,21 @@ cache_tools (CcTabletToolMap *map)
} }
str = g_key_file_get_string (map->tools, serials[i], KEY_TOOL_ID, &error); str = g_key_file_get_string (map->tools, serials[i], KEY_TOOL_ID, &error);
if (error) { if (str == NULL) {
g_warning ("Could not get cached ID for tool with serial %s: %s", g_warning ("Could not get cached ID for tool with serial %s: %s",
serials[i], error->message); serials[i], error->message);
g_clear_error (&error);
continue; continue;
} }
id = g_ascii_strtoull (str, &end, 16); id = g_ascii_strtoull (str, &end, 16);
if (*end != '\0') { if (*end != '\0') {
g_warning ("Invalid tool ID %s", str); g_warning ("Invalid tool ID %s", str);
g_free (str);
continue; continue;
} }
tool = cc_wacom_tool_new (serial, id, NULL); tool = cc_wacom_tool_new (serial, id, NULL);
g_hash_table_insert (map->tool_map, g_strdup (serials[i]), tool); g_hash_table_insert (map->tool_map, g_strdup (serials[i]), tool);
g_free (str);
} }
g_strfreev (serials);
} }
static void static void
@ -135,14 +125,13 @@ cache_devices (CcTabletToolMap *map)
for (i = 0; i < n_ids; i++) { for (i = 0; i < n_ids; i++) {
gchar **styli; gchar **styli;
gsize n_styli, j; gsize n_styli, j;
GError *error = NULL; g_autoptr(GError) error = NULL;
GList *tools = NULL; GList *tools = NULL;
styli = g_key_file_get_string_list (map->tablets, ids[i], KEY_DEVICE_STYLI, &n_styli, &error); styli = g_key_file_get_string_list (map->tablets, ids[i], KEY_DEVICE_STYLI, &n_styli, &error);
if (error) { if (styli == NULL) {
g_warning ("Could not get cached styli for with ID %s: %s", g_warning ("Could not get cached styli for with ID %s: %s",
ids[i], error->message); ids[i], error->message);
g_clear_error (&error);
continue; continue;
} }
@ -254,7 +243,7 @@ cc_tablet_tool_map_list_tools (CcTabletToolMap *map,
{ {
CcWacomTool *no_serial_tool; CcWacomTool *no_serial_tool;
GList *styli; GList *styli;
gchar *key; g_autofree gchar *key = NULL;
g_return_val_if_fail (CC_IS_TABLET_TOOL_MAP (map), NULL); g_return_val_if_fail (CC_IS_TABLET_TOOL_MAP (map), NULL);
g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), NULL); g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), NULL);
@ -274,8 +263,6 @@ cc_tablet_tool_map_list_tools (CcTabletToolMap *map,
styli = g_list_prepend (styli, no_serial_tool); styli = g_list_prepend (styli, no_serial_tool);
} }
g_free (key);
return styli; return styli;
} }
@ -285,7 +272,7 @@ cc_tablet_tool_map_lookup_tool (CcTabletToolMap *map,
guint64 serial) guint64 serial)
{ {
CcWacomTool *tool = NULL; CcWacomTool *tool = NULL;
gchar *key = NULL; g_autofree gchar *key = NULL;
g_return_val_if_fail (CC_IS_TABLET_TOOL_MAP (map), FALSE); g_return_val_if_fail (CC_IS_TABLET_TOOL_MAP (map), FALSE);
g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), FALSE); g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), FALSE);
@ -298,8 +285,6 @@ cc_tablet_tool_map_lookup_tool (CcTabletToolMap *map,
tool = g_hash_table_lookup (map->tool_map, key); tool = g_hash_table_lookup (map->tool_map, key);
} }
g_free (key);
return tool; return tool;
} }
@ -308,8 +293,8 @@ keyfile_add_device_stylus (CcTabletToolMap *map,
const gchar *device_key, const gchar *device_key,
const gchar *tool_key) const gchar *tool_key)
{ {
GArray *array; g_autoptr(GArray) array = NULL;
gchar **styli; g_auto(GStrv) styli = NULL;
gsize n_styli; gsize n_styli;
array = g_array_new (FALSE, FALSE, sizeof (gchar *)); array = g_array_new (FALSE, FALSE, sizeof (gchar *));
@ -324,8 +309,6 @@ keyfile_add_device_stylus (CcTabletToolMap *map,
g_array_append_val (array, tool_key); g_array_append_val (array, tool_key);
g_key_file_set_string_list (map->tablets, device_key, KEY_DEVICE_STYLI, g_key_file_set_string_list (map->tablets, device_key, KEY_DEVICE_STYLI,
(const gchar **) array->data, array->len); (const gchar **) array->data, array->len);
g_array_free (array, TRUE);
g_strfreev (styli);
} }
static void static void
@ -333,12 +316,11 @@ keyfile_add_stylus (CcTabletToolMap *map,
const gchar *tool_key, const gchar *tool_key,
guint64 id) guint64 id)
{ {
gchar *str; g_autofree gchar *str = NULL;
/* Also works for IDs */ /* Also works for IDs */
str = get_tool_key (id); str = get_tool_key (id);
g_key_file_set_string (map->tools, tool_key, KEY_TOOL_ID, str); g_key_file_set_string (map->tools, tool_key, KEY_TOOL_ID, str);
g_free (str);
} }
void void
@ -348,8 +330,8 @@ cc_tablet_tool_map_add_relation (CcTabletToolMap *map,
{ {
gboolean tablets_changed = FALSE, tools_changed = FALSE; gboolean tablets_changed = FALSE, tools_changed = FALSE;
gboolean new_tool_without_serial = FALSE; gboolean new_tool_without_serial = FALSE;
gchar *tool_key, *device_key; g_autofree gchar *tool_key = NULL;
GError *error = NULL; g_autofree gchar *device_key = NULL;
guint64 serial, id; guint64 serial, id;
GList *styli; GList *styli;
@ -396,26 +378,21 @@ cc_tablet_tool_map_add_relation (CcTabletToolMap *map,
} }
} }
g_free (device_key);
g_free (tool_key);
if (tools_changed) { if (tools_changed) {
g_key_file_save_to_file (map->tools, map->tool_path, &error); g_autoptr(GError) error = NULL;
if (error) { if (!g_key_file_save_to_file (map->tools, map->tool_path, &error)) {
g_warning ("Error saving tools keyfile: %s", g_warning ("Error saving tools keyfile: %s",
error->message); error->message);
g_clear_error (&error);
} }
} }
if (tablets_changed) { if (tablets_changed) {
g_key_file_save_to_file (map->tablets, map->tablet_path, &error); g_autoptr(GError) error = NULL;
if (error) { if (!g_key_file_save_to_file (map->tablets, map->tablet_path, &error)) {
g_warning ("Error saving tablets keyfile: %s", g_warning ("Error saving tablets keyfile: %s",
error->message); error->message);
g_clear_error (&error);
} }
} }
} }

View file

@ -81,7 +81,7 @@ cc_wacom_button_row_update_shortcut (CcWacomButtonRow *row,
{ {
guint keyval; guint keyval;
GdkModifierType mask; GdkModifierType mask;
char *shortcut; g_autofree gchar *shortcut = NULL;
if (action_type != G_DESKTOP_PAD_BUTTON_ACTION_KEYBINDING) if (action_type != G_DESKTOP_PAD_BUTTON_ACTION_KEYBINDING)
return; return;
@ -96,8 +96,6 @@ cc_wacom_button_row_update_shortcut (CcWacomButtonRow *row,
"key-value", keyval, "key-value", keyval,
"key-mods", mask, "key-mods", mask,
NULL); NULL);
g_free (shortcut);
} }
} }
@ -156,7 +154,7 @@ static void
on_key_shortcut_edited (GsdWacomKeyShortcutButton *shortcut_button, on_key_shortcut_edited (GsdWacomKeyShortcutButton *shortcut_button,
CcWacomButtonRow *row) CcWacomButtonRow *row)
{ {
char *custom_key; g_autofree gchar *custom_key = NULL;
guint keyval; guint keyval;
GdkModifierType mask; GdkModifierType mask;
@ -172,8 +170,6 @@ on_key_shortcut_edited (GsdWacomKeyShortcutButton *shortcut_button,
custom_key = gtk_accelerator_name (keyval, mask); custom_key = gtk_accelerator_name (keyval, mask);
g_settings_set_string (row->settings, KEYBINDING_KEY, custom_key); g_settings_set_string (row->settings, KEYBINDING_KEY, custom_key);
g_free (custom_key);
} }
static void static void
@ -238,7 +234,7 @@ cc_wacom_button_row_new (guint button,
{ {
CcWacomButtonRow *row; CcWacomButtonRow *row;
GtkWidget *grid, *combo, *label, *shortcut_button; GtkWidget *grid, *combo, *label, *shortcut_button;
char *name = NULL; g_autofree gchar *name = NULL;
row = CC_WACOM_BUTTON_ROW (g_object_new (CC_WACOM_TYPE_BUTTON_ROW, NULL)); row = CC_WACOM_BUTTON_ROW (g_object_new (CC_WACOM_TYPE_BUTTON_ROW, NULL));
@ -282,7 +278,5 @@ cc_wacom_button_row_new (guint button,
cc_wacom_button_row_update (CC_WACOM_BUTTON_ROW (row)); cc_wacom_button_row_update (CC_WACOM_BUTTON_ROW (row));
g_free (name);
return GTK_WIDGET (row); return GTK_WIDGET (row);
} }

View file

@ -266,7 +266,9 @@ find_output_by_edid (GnomeRRScreen *rr_screen,
rr_outputs = gnome_rr_screen_list_outputs (rr_screen); rr_outputs = gnome_rr_screen_list_outputs (rr_screen);
for (i = 0; rr_outputs[i] != NULL; i++) { for (i = 0; rr_outputs[i] != NULL; i++) {
gchar *o_vendor, *o_product, *o_serial; g_autofree gchar *o_vendor = NULL;
g_autofree gchar *o_product = NULL;
g_autofree gchar *o_serial = NULL;
gboolean match; gboolean match;
gnome_rr_output_get_ids_from_edid (rr_outputs[i], gnome_rr_output_get_ids_from_edid (rr_outputs[i],
@ -281,10 +283,6 @@ find_output_by_edid (GnomeRRScreen *rr_screen,
(g_strcmp0 (product, o_product) == 0) && \ (g_strcmp0 (product, o_product) == 0) && \
(g_strcmp0 (serial, o_serial) == 0); (g_strcmp0 (serial, o_serial) == 0);
g_free (o_vendor);
g_free (o_product);
g_free (o_serial);
if (match) { if (match) {
retval = rr_outputs[i]; retval = rr_outputs[i];
break; break;
@ -302,10 +300,9 @@ static GnomeRROutput *
find_output (GnomeRRScreen *rr_screen, find_output (GnomeRRScreen *rr_screen,
CcWacomDevice *device) CcWacomDevice *device)
{ {
GSettings *settings; g_autoptr(GSettings) settings = NULL;
GVariant *variant; g_autoptr(GVariant) variant = NULL;
const gchar **edid; g_autofree const gchar **edid = NULL;
GnomeRROutput *ret = NULL;
gsize n; gsize n;
settings = cc_wacom_device_get_settings (device); settings = cc_wacom_device_get_settings (device);
@ -314,20 +311,13 @@ find_output (GnomeRRScreen *rr_screen,
if (n != 3) { if (n != 3) {
g_critical ("Expected 'output' key to store %d values; got %"G_GSIZE_FORMAT".", 3, n); g_critical ("Expected 'output' key to store %d values; got %"G_GSIZE_FORMAT".", 3, n);
goto out; return NULL;
} }
if (strlen (edid[0]) == 0 || strlen (edid[1]) == 0 || strlen (edid[2]) == 0) if (strlen (edid[0]) == 0 || strlen (edid[1]) == 0 || strlen (edid[2]) == 0)
goto out; return NULL;
ret = find_output_by_edid (rr_screen, edid[0], edid[1], edid[2]); return find_output_by_edid (rr_screen, edid[0], edid[1], edid[2]);
out:
g_free (edid);
g_variant_unref (variant);
g_object_unref (settings);
return ret;
} }
GnomeRROutput * GnomeRROutput *
@ -359,8 +349,10 @@ void
cc_wacom_device_set_output (CcWacomDevice *device, cc_wacom_device_set_output (CcWacomDevice *device,
GnomeRROutput *output) GnomeRROutput *output)
{ {
GSettings *settings; g_autoptr(GSettings) settings = NULL;
gchar *vendor, *product, *serial; g_autofree gchar *vendor = NULL;
g_autofree gchar *product = NULL;
g_autofree gchar *serial = NULL;
const gchar *values[] = { "", "", "", NULL }; const gchar *values[] = { "", "", "", NULL };
g_return_if_fail (CC_IS_WACOM_DEVICE (device)); g_return_if_fail (CC_IS_WACOM_DEVICE (device));
@ -379,11 +371,6 @@ cc_wacom_device_set_output (CcWacomDevice *device,
} }
g_settings_set_strv (settings, "output", values); g_settings_set_strv (settings, "output", values);
g_free (vendor);
g_free (product);
g_free (serial);
g_object_unref (settings);
} }
guint guint
@ -398,8 +385,10 @@ GSettings *
cc_wacom_device_get_button_settings (CcWacomDevice *device, cc_wacom_device_get_button_settings (CcWacomDevice *device,
guint button) guint button)
{ {
GSettings *tablet_settings, *settings; g_autoptr(GSettings) tablet_settings = NULL;
gchar *path, *button_path; GSettings *settings;
g_autofree gchar *path = NULL;
g_autofree gchar *button_path = NULL;
g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), NULL); g_return_val_if_fail (CC_IS_WACOM_DEVICE (device), NULL);
@ -412,9 +401,6 @@ cc_wacom_device_get_button_settings (CcWacomDevice *device,
button_path = g_strdup_printf ("%sbutton%c/", path, 'A' + button); button_path = g_strdup_printf ("%sbutton%c/", path, 'A' + button);
settings = g_settings_new_with_path ("org.gnome.desktop.peripherals.tablet.pad-button", settings = g_settings_new_with_path ("org.gnome.desktop.peripherals.tablet.pad-button",
button_path); button_path);
g_free (path);
g_free (button_path);
g_object_unref (tablet_settings);
return settings; return settings;
} }

View file

@ -77,7 +77,7 @@ set_combobox_sensitive (CcWacomMappingPanel *self,
static void static void
update_monitor_chooser (CcWacomMappingPanel *self) update_monitor_chooser (CcWacomMappingPanel *self)
{ {
GtkListStore *store; g_autoptr(GtkListStore) store = NULL;
GnomeRROutput **outputs; GnomeRROutput **outputs;
GSettings *settings; GSettings *settings;
GnomeRROutput *cur_output; GnomeRROutput *cur_output;
@ -88,7 +88,6 @@ update_monitor_chooser (CcWacomMappingPanel *self)
if (self->device == NULL) { if (self->device == NULL) {
set_combobox_sensitive (self, FALSE); set_combobox_sensitive (self, FALSE);
g_object_unref (store);
return; return;
} }
@ -105,8 +104,8 @@ update_monitor_chooser (CcWacomMappingPanel *self)
g_signal_handlers_unblock_by_func (G_OBJECT (self->aspectswitch), aspectswitch_toggled_cb, self); g_signal_handlers_unblock_by_func (G_OBJECT (self->aspectswitch), aspectswitch_toggled_cb, self);
if (!self->rr_screen) { if (!self->rr_screen) {
cur_output = NULL; set_combobox_sensitive (self, FALSE);
goto bail; return;
} }
outputs = gnome_rr_screen_list_outputs (self->rr_screen); outputs = gnome_rr_screen_list_outputs (self->rr_screen);
@ -119,7 +118,7 @@ update_monitor_chooser (CcWacomMappingPanel *self)
if (crtc && gnome_rr_crtc_get_current_mode (crtc) != NULL) { if (crtc && gnome_rr_crtc_get_current_mode (crtc) != NULL) {
GtkTreeIter iter; GtkTreeIter iter;
const gchar *name, *disp_name; const gchar *name, *disp_name;
gchar *text; g_autofree gchar *text = NULL;
name = gnome_rr_output_get_name (output); name = gnome_rr_output_get_name (output);
disp_name = gnome_rr_output_get_display_name (output); disp_name = gnome_rr_output_get_display_name (output);
@ -133,14 +132,10 @@ update_monitor_chooser (CcWacomMappingPanel *self)
gtk_combo_box_set_active_iter (GTK_COMBO_BOX(self->combobox), &iter); gtk_combo_box_set_active_iter (GTK_COMBO_BOX(self->combobox), &iter);
g_signal_handlers_unblock_by_func (G_OBJECT (self->combobox), combobox_changed_cb, self); g_signal_handlers_unblock_by_func (G_OBJECT (self->combobox), combobox_changed_cb, self);
} }
g_free (text);
} }
} }
bail:
set_combobox_sensitive (self, cur_output != NULL); set_combobox_sensitive (self, cur_output != NULL);
g_object_unref (store);
} }
static void static void
@ -231,14 +226,12 @@ cc_wacom_mapping_panel_init (CcWacomMappingPanel *self)
{ {
GtkWidget *vbox, *grid; GtkWidget *vbox, *grid;
GtkCellRenderer *renderer; GtkCellRenderer *renderer;
GError *error = NULL; g_autoptr(GError) error = NULL;
self->rr_screen = gnome_rr_screen_new (gdk_screen_get_default (), &error); self->rr_screen = gnome_rr_screen_new (gdk_screen_get_default (), &error);
if (error) { if (error)
g_warning ("Could not get RR screen: %s", error->message); g_warning ("Could not get RR screen: %s", error->message);
g_error_free (error);
}
g_signal_connect_swapped (self->rr_screen, "changed", g_signal_connect_swapped (self->rr_screen, "changed",
G_CALLBACK (update_monitor_chooser), self); G_CALLBACK (update_monitor_chooser), self);

View file

@ -140,8 +140,8 @@ cc_wacom_nav_button_set_property (GObject *object,
g_signal_handler_disconnect (nav->notebook, nav->page_added_id); g_signal_handler_disconnect (nav->notebook, nav->page_added_id);
g_signal_handler_disconnect (nav->notebook, nav->page_removed_id); g_signal_handler_disconnect (nav->notebook, nav->page_removed_id);
g_signal_handler_disconnect (nav->notebook, nav->page_switched_id); g_signal_handler_disconnect (nav->notebook, nav->page_switched_id);
g_object_unref (nav->notebook);
} }
g_clear_object (&nav->notebook);
nav->notebook = g_value_dup_object (value); nav->notebook = g_value_dup_object (value);
nav->page_added_id = g_signal_connect (G_OBJECT (nav->notebook), "page-added", nav->page_added_id = g_signal_connect (G_OBJECT (nav->notebook), "page-added",
G_CALLBACK (pages_changed), nav); G_CALLBACK (pages_changed), nav);
@ -172,8 +172,7 @@ cc_wacom_nav_button_dispose (GObject *object)
self->page_removed_id = 0; self->page_removed_id = 0;
g_signal_handler_disconnect (self->notebook, self->page_switched_id); g_signal_handler_disconnect (self->notebook, self->page_switched_id);
self->page_switched_id = 0; self->page_switched_id = 0;
g_object_unref (self->notebook); g_clear_object (&self->notebook);
self->notebook = NULL;
} }
G_OBJECT_CLASS (cc_wacom_nav_button_parent_class)->dispose (object); G_OBJECT_CLASS (cc_wacom_nav_button_parent_class)->dispose (object);

View file

@ -148,7 +148,7 @@ set_calibration (CcWacomDevice *device,
{ {
GVariant *current; /* current calibration */ GVariant *current; /* current calibration */
GVariant *array; /* new calibration */ GVariant *array; /* new calibration */
GVariant **tmp; g_autofree GVariant **tmp = NULL;
gsize nvalues; gsize nvalues;
gint i; gint i;
@ -166,8 +166,6 @@ set_calibration (CcWacomDevice *device,
array = g_variant_new_array (G_VARIANT_TYPE_DOUBLE, tmp, nvalues); array = g_variant_new_array (G_VARIANT_TYPE_DOUBLE, tmp, nvalues);
g_settings_set_value (settings, "area", array); g_settings_set_value (settings, "area", array);
g_free (tmp);
g_debug ("Setting area to %f, %f, %f, %f (left/right/top/bottom) (last used resolution: %d x %d)", g_debug ("Setting area to %f, %f, %f, %f (left/right/top/bottom) (last used resolution: %d x %d)",
cal[0], cal[1], cal[2], cal[3], cal[0], cal[1], cal[2], cal[3],
display_width, display_height); display_width, display_height);
@ -216,7 +214,8 @@ cc_wacom_page_get_gdk_device (CcWacomPage *page)
GdkDevice *gdk_device = NULL; GdkDevice *gdk_device = NULL;
GdkDisplay *display; GdkDisplay *display;
GdkSeat *seat; GdkSeat *seat;
GList *slaves, *l; g_autoptr(GList) slaves = NULL;
GList *l;
gsd_device = cc_wacom_device_get_device (page->stylus); gsd_device = cc_wacom_device_get_device (page->stylus);
g_return_val_if_fail (GSD_IS_DEVICE (gsd_device), NULL); g_return_val_if_fail (GSD_IS_DEVICE (gsd_device), NULL);
@ -226,7 +225,7 @@ cc_wacom_page_get_gdk_device (CcWacomPage *page)
slaves = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_TABLET_STYLUS); slaves = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_TABLET_STYLUS);
for (l = slaves; l && !gdk_device; l = l->next) { for (l = slaves; l && !gdk_device; l = l->next) {
gchar *device_node = NULL; g_autofree gchar *device_node = NULL;
if (gdk_device_get_source (l->data) != GDK_SOURCE_PEN) if (gdk_device_get_source (l->data) != GDK_SOURCE_PEN)
continue; continue;
@ -242,12 +241,8 @@ cc_wacom_page_get_gdk_device (CcWacomPage *page)
if (g_strcmp0 (device_node, gsd_device_get_device_file (gsd_device)) == 0) if (g_strcmp0 (device_node, gsd_device_get_device_file (gsd_device)) == 0)
gdk_device = l->data; gdk_device = l->data;
g_free (device_node);
} }
g_list_free (slaves);
return gdk_device; return gdk_device;
} }
@ -289,21 +284,21 @@ static void
calibrate (CcWacomPage *page) calibrate (CcWacomPage *page)
{ {
int i; int i;
GVariant *old_calibration, **tmp, *array; GVariant *old_calibration, *array;
gdouble *calibration; g_autofree GVariant **tmp = NULL;
g_autofree gdouble *calibration = NULL;
gsize ncal; gsize ncal;
GdkMonitor *monitor; GdkMonitor *monitor;
GdkScreen *screen; GdkScreen *screen;
GnomeRRScreen *rr_screen; g_autoptr(GnomeRRScreen) rr_screen = NULL;
GnomeRROutput *output; GnomeRROutput *output;
GError *error = NULL; g_autoptr(GError) error = NULL;
gint x, y; gint x, y;
screen = gdk_screen_get_default (); screen = gdk_screen_get_default ();
rr_screen = gnome_rr_screen_new (screen, &error); rr_screen = gnome_rr_screen_new (screen, &error);
if (error) { if (error) {
g_warning ("Could not connect to display manager: %s", error->message); g_warning ("Could not connect to display manager: %s", error->message);
g_error_free (error);
return; return;
} }
@ -339,13 +334,9 @@ calibrate (CcWacomPage *page)
array = g_variant_new_array (G_VARIANT_TYPE_DOUBLE, tmp, ncal); array = g_variant_new_array (G_VARIANT_TYPE_DOUBLE, tmp, ncal);
g_settings_set_value (page->wacom_settings, "area", array); g_settings_set_value (page->wacom_settings, "area", array);
g_free (tmp);
run_calibration (page, old_calibration, calibration, monitor); run_calibration (page, old_calibration, calibration, monitor);
g_free (calibration);
gtk_widget_set_sensitive (WID ("button-calibrate"), FALSE); gtk_widget_set_sensitive (WID ("button-calibrate"), FALSE);
g_object_unref (rr_screen);
} }
static void static void
@ -408,15 +399,14 @@ button_mapping_dialog_closed (GtkDialog *dialog,
CcWacomPage *page) CcWacomPage *page)
{ {
gtk_widget_destroy (MWID ("button-mapping-dialog")); gtk_widget_destroy (MWID ("button-mapping-dialog"));
g_object_unref (page->mapping_builder); g_clear_object (&page->mapping_builder);
page->mapping_builder = NULL;
} }
static void static void
show_button_mapping_dialog (CcWacomPage *page) show_button_mapping_dialog (CcWacomPage *page)
{ {
GtkWidget *toplevel; GtkWidget *toplevel;
GError *error = NULL; g_autoptr(GError) error = NULL;
GtkWidget *dialog; GtkWidget *dialog;
g_assert (page->mapping_builder == NULL); g_assert (page->mapping_builder == NULL);
@ -427,9 +417,7 @@ show_button_mapping_dialog (CcWacomPage *page)
if (error != NULL) { if (error != NULL) {
g_warning ("Error loading UI file: %s", error->message); g_warning ("Error loading UI file: %s", error->message);
g_object_unref (page->mapping_builder); g_clear_object (&page->mapping_builder);
page->mapping_builder = NULL;
g_error_free (error);
return; return;
} }
@ -453,7 +441,7 @@ set_osd_visibility_cb (GObject *source_object,
GAsyncResult *res, GAsyncResult *res,
gpointer data) gpointer data)
{ {
GError *error = NULL; g_autoptr(GError) error = NULL;
GVariant *result; GVariant *result;
CcWacomPage *page; CcWacomPage *page;
@ -464,10 +452,8 @@ set_osd_visibility_cb (GObject *source_object,
if (result == NULL) { if (result == NULL) {
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
g_printerr ("Error setting OSD's visibility: %s\n", error->message); g_printerr ("Error setting OSD's visibility: %s\n", error->message);
g_error_free (error);
show_button_mapping_dialog (page); show_button_mapping_dialog (page);
} else { } else {
g_error_free (error);
return; return;
} }
} }
@ -655,36 +641,13 @@ cc_wacom_page_dispose (GObject *object)
{ {
CcWacomPage *self = CC_WACOM_PAGE (object); CcWacomPage *self = CC_WACOM_PAGE (object);
if (self->cancellable) { g_cancellable_cancel (self->cancellable);
g_cancellable_cancel (self->cancellable); g_clear_object (&self->cancellable);
g_clear_object (&self->cancellable); g_clear_pointer (&self->area, calib_area_free);
} g_clear_pointer (&self->button_map, gtk_widget_destroy);
g_clear_pointer (&self->dialog, gtk_widget_destroy);
if (self->area) { g_clear_object (&self->builder);
calib_area_free (self->area); g_clear_object (&self->header_group);
self->area = NULL;
}
if (self->button_map) {
gtk_widget_destroy (self->button_map);
self->button_map = NULL;
}
if (self->dialog) {
gtk_widget_destroy (self->dialog);
self->dialog = NULL;
}
if (self->builder) {
g_object_unref (self->builder);
self->builder = NULL;
}
if (self->header_group) {
g_object_unref (self->header_group);
self->header_group = NULL;
}
self->panel = NULL; self->panel = NULL;
@ -717,7 +680,7 @@ remove_link_padding (GtkWidget *widget)
static void static void
cc_wacom_page_init (CcWacomPage *page) cc_wacom_page_init (CcWacomPage *page)
{ {
GError *error = NULL; g_autoptr(GError) error = NULL;
GtkComboBox *combo; GtkComboBox *combo;
GtkWidget *box; GtkWidget *box;
GtkSwitch *sw; GtkSwitch *sw;
@ -738,8 +701,6 @@ cc_wacom_page_init (CcWacomPage *page)
&error); &error);
if (error != NULL) { if (error != NULL) {
g_warning ("Error loading UI file: %s", error->message); g_warning ("Error loading UI file: %s", error->message);
g_object_unref (page->builder);
g_error_free (error);
return; return;
} }
@ -786,11 +747,10 @@ set_icon_name (CcWacomPage *page,
const char *widget_name, const char *widget_name,
const char *icon_name) const char *icon_name)
{ {
char *resource; g_autofree gchar *resource = NULL;
resource = g_strdup_printf ("/org/gnome/control-center/wacom/%s.svg", icon_name); resource = g_strdup_printf ("/org/gnome/control-center/wacom/%s.svg", icon_name);
gtk_image_set_from_resource (GTK_IMAGE (WID (widget_name)), resource); gtk_image_set_from_resource (GTK_IMAGE (WID (widget_name)), resource);
g_free (resource);
} }
static void static void

View file

@ -146,7 +146,8 @@ set_device_page (CcWacomPanel *self, const gchar *device_name)
static void static void
run_operation_from_params (CcWacomPanel *self, GVariant *parameters) run_operation_from_params (CcWacomPanel *self, GVariant *parameters)
{ {
GVariant *v; g_autoptr(GVariant) v = NULL;
g_autoptr(GVariant) v2 = NULL;
CcWacomPage *page; CcWacomPage *page;
const gchar *operation = NULL; const gchar *operation = NULL;
const gchar *device_name = NULL; const gchar *device_name = NULL;
@ -160,28 +161,23 @@ run_operation_from_params (CcWacomPanel *self, GVariant *parameters)
if (!g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) { if (!g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) {
g_warning ("Wrong type for the second argument GVariant, expected 's' but got '%s'", g_warning ("Wrong type for the second argument GVariant, expected 's' but got '%s'",
g_variant_get_type_string (v)); g_variant_get_type_string (v));
g_variant_unref (v);
return; return;
} }
g_variant_unref (v);
switch (n_params) { switch (n_params) {
case 3: case 3:
page = set_device_page (self, device_name); page = set_device_page (self, device_name);
if (page == NULL) if (page == NULL)
return; return;
g_variant_get_child (parameters, 1, "v", &v); g_variant_get_child (parameters, 1, "v", &v2);
if (!g_variant_is_of_type (v, G_VARIANT_TYPE_STRING)) { if (!g_variant_is_of_type (v2, G_VARIANT_TYPE_STRING)) {
g_warning ("Wrong type for the operation name argument. A string is expected."); g_warning ("Wrong type for the operation name argument. A string is expected.");
g_variant_unref (v);
break; break;
} }
operation = g_variant_get_string (v, NULL); operation = g_variant_get_string (v2, NULL);
if (g_strcmp0 (operation, "run-calibration") == 0) { if (g_strcmp0 (operation, "run-calibration") == 0) {
if (cc_wacom_page_can_calibrate (page)) if (cc_wacom_page_can_calibrate (page))
cc_wacom_page_calibrate (page); cc_wacom_page_calibrate (page);
@ -190,7 +186,6 @@ run_operation_from_params (CcWacomPanel *self, GVariant *parameters)
} else { } else {
g_warning ("Ignoring unrecognized operation '%s'", operation); g_warning ("Ignoring unrecognized operation '%s'", operation);
} }
g_variant_unref (v);
case 2: case 2:
set_device_page (self, device_name); set_device_page (self, device_name);
break; break;
@ -248,11 +243,7 @@ cc_wacom_panel_dispose (GObject *object)
{ {
CcWacomPanel *self = CC_WACOM_PANEL (object); CcWacomPanel *self = CC_WACOM_PANEL (object);
if (self->builder) g_clear_object (&self->builder);
{
g_object_unref (self->builder);
self->builder = NULL;
}
if (self->manager) if (self->manager)
{ {
@ -261,26 +252,11 @@ cc_wacom_panel_dispose (GObject *object)
self->manager = NULL; self->manager = NULL;
} }
if (self->devices) g_clear_pointer (&self->devices, g_hash_table_unref);
{
g_hash_table_destroy (self->devices);
self->devices = NULL;
}
g_clear_object (&self->cancellable); g_clear_object (&self->cancellable);
g_clear_object (&self->proxy); g_clear_object (&self->proxy);
g_clear_pointer (&self->pages, g_hash_table_unref);
if (self->pages) g_clear_pointer (&self->stylus_pages, g_hash_table_unref);
{
g_hash_table_destroy (self->pages);
self->pages = NULL;
}
if (self->stylus_pages)
{
g_hash_table_destroy (self->stylus_pages);
self->stylus_pages = NULL;
}
G_OBJECT_CLASS (cc_wacom_panel_parent_class)->dispose (object); G_OBJECT_CLASS (cc_wacom_panel_parent_class)->dispose (object);
} }
@ -292,7 +268,8 @@ check_remove_stylus_pages (CcWacomPanel *self)
CcWacomDevice *device; CcWacomDevice *device;
CcWacomTool *tool; CcWacomTool *tool;
GtkWidget *page; GtkWidget *page;
GList *tools, *total = NULL; GList *tools;
g_autoptr(GList) total = NULL;
/* First. Iterate known devices and get the tools */ /* First. Iterate known devices and get the tools */
g_hash_table_iter_init (&iter, self->devices); g_hash_table_iter_init (&iter, self->devices);
@ -311,8 +288,6 @@ check_remove_stylus_pages (CcWacomPanel *self)
gtk_widget_destroy (page); gtk_widget_destroy (page);
g_hash_table_iter_remove (&iter); g_hash_table_iter_remove (&iter);
} }
g_list_free (total);
} }
static gboolean static gboolean
@ -540,7 +515,8 @@ update_current_page (CcWacomPanel *self,
CcWacomDevice *removed_device) CcWacomDevice *removed_device)
{ {
GHashTable *ht; GHashTable *ht;
GList *tablets, *l; g_autoptr(GList) tablets = NULL;
GList *l;
gboolean changed; gboolean changed;
GHashTableIter iter; GHashTableIter iter;
GsdDevice *gsd_device; GsdDevice *gsd_device;
@ -610,7 +586,6 @@ update_current_page (CcWacomPanel *self,
cc_wacom_page_update_tools (CC_WACOM_PAGE (page), tablet->stylus, tablet->pad); cc_wacom_page_update_tools (CC_WACOM_PAGE (page), tablet->stylus, tablet->pad);
} }
} }
g_list_free (tablets);
g_hash_table_destroy (ht); g_hash_table_destroy (ht);
@ -631,7 +606,6 @@ add_known_device (CcWacomPanel *self,
{ {
CcWacomDevice *device; CcWacomDevice *device;
GsdDeviceType device_type; GsdDeviceType device_type;
GList *tools, *l;
device_type = gsd_device_get_device_type (gsd_device); device_type = gsd_device_get_device_type (gsd_device);
@ -651,13 +625,14 @@ add_known_device (CcWacomPanel *self,
/* Only trigger tool lookup on pen devices */ /* Only trigger tool lookup on pen devices */
if ((device_type & GSD_DEVICE_TYPE_TABLET) != 0) { if ((device_type & GSD_DEVICE_TYPE_TABLET) != 0) {
g_autoptr(GList) tools = NULL;
GList *l;
tools = cc_tablet_tool_map_list_tools (self->tablet_tool_map, device); tools = cc_tablet_tool_map_list_tools (self->tablet_tool_map, device);
for (l = tools; l != NULL; l = l->next) { for (l = tools; l != NULL; l = l->next) {
add_stylus (self, l->data); add_stylus (self, l->data);
} }
g_list_free (tools);
} }
} }
@ -666,7 +641,7 @@ device_removed_cb (GsdDeviceManager *manager,
GsdDevice *gsd_device, GsdDevice *gsd_device,
CcWacomPanel *self) CcWacomPanel *self)
{ {
CcWacomDevice *device; g_autoptr(CcWacomDevice) device = NULL;
device = g_hash_table_lookup (self->devices, gsd_device); device = g_hash_table_lookup (self->devices, gsd_device);
if (!device) if (!device)
@ -675,7 +650,6 @@ device_removed_cb (GsdDeviceManager *manager,
g_hash_table_steal (self->devices, gsd_device); g_hash_table_steal (self->devices, gsd_device);
update_current_page (self, device); update_current_page (self, device);
check_remove_stylus_pages (self); check_remove_stylus_pages (self);
g_object_unref (device);
} }
static void static void
@ -700,16 +674,13 @@ cc_wacom_panel_switch_to_panel (CcWacomPanel *self,
const char *panel) const char *panel)
{ {
CcShell *shell; CcShell *shell;
GError *error = NULL; g_autoptr(GError) error = NULL;
g_return_if_fail (self); g_return_if_fail (self);
shell = cc_panel_get_shell (CC_PANEL (self)); shell = cc_panel_get_shell (CC_PANEL (self));
if (cc_shell_set_active_panel_from_id (shell, panel, NULL, &error) == FALSE) if (!cc_shell_set_active_panel_from_id (shell, panel, NULL, &error))
{
g_warning ("Failed to activate '%s' panel: %s", panel, error->message); g_warning ("Failed to activate '%s' panel: %s", panel, error->message);
g_error_free (error);
}
} }
static void static void
@ -717,7 +688,7 @@ got_osd_proxy_cb (GObject *source_object,
GAsyncResult *res, GAsyncResult *res,
gpointer data) gpointer data)
{ {
GError *error = NULL; g_autoptr(GError) error = NULL;
CcWacomPanel *self; CcWacomPanel *self;
self = CC_WACOM_PANEL (data); self = CC_WACOM_PANEL (data);
@ -727,7 +698,6 @@ got_osd_proxy_cb (GObject *source_object,
if (self->proxy == NULL) { if (self->proxy == NULL) {
g_printerr ("Error creating proxy: %s\n", error->message); g_printerr ("Error creating proxy: %s\n", error->message);
g_error_free (error);
return; return;
} }
} }
@ -736,12 +706,11 @@ static void
enbiggen_label (GtkLabel *label) enbiggen_label (GtkLabel *label)
{ {
const char *str; const char *str;
char *new_str; g_autofree char *new_str = NULL;
str = gtk_label_get_text (label); str = gtk_label_get_text (label);
new_str = g_strdup_printf ("<big>%s</big>", str); new_str = g_strdup_printf ("<big>%s</big>", str);
gtk_label_set_markup (label, new_str); gtk_label_set_markup (label, new_str);
g_free (new_str);
} }
static void static void
@ -765,8 +734,9 @@ static void
cc_wacom_panel_init (CcWacomPanel *self) cc_wacom_panel_init (CcWacomPanel *self)
{ {
GtkWidget *widget; GtkWidget *widget;
GList *devices, *l; g_autoptr(GList) devices = NULL;
GError *error = NULL; GList *l;
g_autoptr(GError) error = NULL;
char *objects[] = { char *objects[] = {
"main-box", "main-box",
"no-stylus-page", "no-stylus-page",
@ -785,11 +755,8 @@ cc_wacom_panel_init (CcWacomPanel *self)
"/org/gnome/control-center/wacom/wacom-stylus-page.ui", "/org/gnome/control-center/wacom/wacom-stylus-page.ui",
objects, objects,
&error); &error);
if (error != NULL) if (error != NULL) {
{
g_warning ("Error loading UI file: %s", error->message); g_warning ("Error loading UI file: %s", error->message);
g_object_unref (self->builder);
g_error_free (error);
return; return;
} }
@ -874,7 +841,6 @@ cc_wacom_panel_init (CcWacomPanel *self)
GSD_DEVICE_TYPE_TABLET); GSD_DEVICE_TYPE_TABLET);
for (l = devices; l ; l = l->next) for (l = devices; l ; l = l->next)
add_known_device (self, l->data); add_known_device (self, l->data);
g_list_free (devices);
update_current_page (self, NULL); update_current_page (self, NULL);
} }

View file

@ -243,11 +243,7 @@ cc_wacom_stylus_page_dispose (GObject *object)
{ {
CcWacomStylusPage *page = CC_WACOM_STYLUS_PAGE (object); CcWacomStylusPage *page = CC_WACOM_STYLUS_PAGE (object);
if (page->builder) { g_clear_object (&page->builder);
g_object_unref (page->builder);
page->builder = NULL;
}
G_OBJECT_CLASS (cc_wacom_stylus_page_parent_class)->dispose (object); G_OBJECT_CLASS (cc_wacom_stylus_page_parent_class)->dispose (object);
} }
@ -265,7 +261,7 @@ cc_wacom_stylus_page_class_init (CcWacomStylusPageClass *klass)
static void static void
cc_wacom_stylus_page_init (CcWacomStylusPage *page) cc_wacom_stylus_page_init (CcWacomStylusPage *page)
{ {
GError *error = NULL; g_autoptr(GError) error = NULL;
GtkComboBox *combo; GtkComboBox *combo;
GtkWidget *box; GtkWidget *box;
char *objects[] = { char *objects[] = {
@ -284,8 +280,6 @@ cc_wacom_stylus_page_init (CcWacomStylusPage *page)
&error); &error);
if (error != NULL) { if (error != NULL) {
g_warning ("Error loading UI file: %s", error->message); g_warning ("Error loading UI file: %s", error->message);
g_object_unref (page->builder);
g_error_free (error);
return; return;
} }
@ -325,11 +319,10 @@ set_icon_name (CcWacomStylusPage *page,
const char *widget_name, const char *widget_name,
const char *icon_name) const char *icon_name)
{ {
char *resource; g_autofree gchar *resource = NULL;
resource = g_strdup_printf ("/org/gnome/control-center/wacom/%s.svg", icon_name); resource = g_strdup_printf ("/org/gnome/control-center/wacom/%s.svg", icon_name);
gtk_image_set_from_resource (GTK_IMAGE (WID (widget_name)), resource); gtk_image_set_from_resource (GTK_IMAGE (WID (widget_name)), resource);
g_free (resource);
} }
/* Different types of layout for the stylus config */ /* Different types of layout for the stylus config */

View file

@ -109,8 +109,7 @@ cc_wacom_tool_finalize (GObject *object)
{ {
CcWacomTool *tool = CC_WACOM_TOOL (object); CcWacomTool *tool = CC_WACOM_TOOL (object);
if (tool->settings) g_clear_object (&tool->settings);
g_object_unref (tool->settings);
G_OBJECT_CLASS (cc_wacom_tool_parent_class)->finalize (object); G_OBJECT_CLASS (cc_wacom_tool_parent_class)->finalize (object);
} }

View file

@ -210,7 +210,7 @@ gsd_wacom_key_shortcut_remove_editing_mode (GsdWacomKeyShortcutButton *self)
static void static void
gsd_wacom_key_shortcut_button_changed (GsdWacomKeyShortcutButton *self) gsd_wacom_key_shortcut_button_changed (GsdWacomKeyShortcutButton *self)
{ {
gchar *text; g_autofree gchar *text = NULL;
if (self->editing_mode) if (self->editing_mode)
{ {
@ -231,7 +231,6 @@ gsd_wacom_key_shortcut_button_changed (GsdWacomKeyShortcutButton *self)
text = gtk_accelerator_get_label (self->keyval, self->mods); text = gtk_accelerator_get_label (self->keyval, self->mods);
gtk_button_set_label (GTK_BUTTON (self), text); gtk_button_set_label (GTK_BUTTON (self), text);
g_free (text);
} }
static void static void