summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2016-04-24 11:46:38 +0200
committerMatthias Clasen <mclasen@redhat.com>2016-05-05 15:03:58 -0400
commitdb326889f91f96a7155bdfa4af353a5b915ebfa0 (patch)
tree6edfe73218b90244bca6aaf960850b6ff15473d3
parent6be0f108b43523c3394cb684cdc938a98b4f9f4a (diff)
downloadgtk+-db326889f91f96a7155bdfa4af353a5b915ebfa0.tar.gz
inspector: do not leak seat capabilities descriprion
Factor out an utility function for readability and free the string with the list of capabilities
-rw-r--r--gtk/inspector/general.c45
1 files changed, 27 insertions, 18 deletions
diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
index 4c420a952a..4eab3a7f1e 100644
--- a/gtk/inspector/general.c
+++ b/gtk/inspector/general.c
@@ -490,12 +490,9 @@ add_device (GtkInspectorGeneral *gen,
}
}
-static void
-add_seat (GtkInspectorGeneral *gen,
- GdkSeat *seat,
- int num)
+static char *
+get_seat_capabilities (GdkSeat *seat)
{
- GdkSeatCapabilities capabilities;
struct {
GdkSeatCapabilities cap;
const char *name;
@@ -507,18 +504,8 @@ add_seat (GtkInspectorGeneral *gen,
{ 0, NULL }
};
GString *str;
- char *text;
+ GdkSeatCapabilities capabilities;
int i;
- GList *list, *l;
-
- if (!g_object_get_data (G_OBJECT (seat), "inspector-connected"))
- {
- g_object_set_data (G_OBJECT (seat), "inspector-connected", GINT_TO_POINTER (1));
- g_signal_connect_swapped (seat, "device-added", G_CALLBACK (populate_seats), gen);
- g_signal_connect_swapped (seat, "device-removed", G_CALLBACK (populate_seats), gen);
- }
-
- text = g_strdup_printf ("Seat %d", num);
str = g_string_new ("");
capabilities = gdk_seat_get_capabilities (seat);
@@ -532,9 +519,31 @@ add_seat (GtkInspectorGeneral *gen,
}
}
- add_label_row (GTK_LIST_BOX (gen->priv->device_box), text, str->str, 0);
+ return g_string_free (str, FALSE);
+}
+
+static void
+add_seat (GtkInspectorGeneral *gen,
+ GdkSeat *seat,
+ int num)
+{
+ char *text;
+ char *caps;
+ GList *list, *l;
+
+ if (!g_object_get_data (G_OBJECT (seat), "inspector-connected"))
+ {
+ g_object_set_data (G_OBJECT (seat), "inspector-connected", GINT_TO_POINTER (1));
+ g_signal_connect_swapped (seat, "device-added", G_CALLBACK (populate_seats), gen);
+ g_signal_connect_swapped (seat, "device-removed", G_CALLBACK (populate_seats), gen);
+ }
+
+ text = g_strdup_printf ("Seat %d", num);
+ caps = get_seat_capabilities (seat);
+
+ add_label_row (GTK_LIST_BOX (gen->priv->device_box), text, caps, 0);
g_free (text);
- g_string_free (str, FALSE);
+ g_free (caps);
list = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_ALL);