From e3e84de96c0a99dd8bd838337ecb0d7ab315f156 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 1 May 2016 13:23:12 -0400 Subject: gesture: Don't leak stashed events These events were never freed. --- gtk/gtkgesture.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index 47fa3c56ce..8eaa518778 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -993,6 +993,17 @@ gtk_gesture_class_init (GtkGestureClass *klass) GTK_TYPE_EVENT_SEQUENCE_STATE); } +static void +free_point_data (gpointer data) +{ + PointData *point = data; + + if (point->event) + gdk_event_free (point->event); + + g_free (point); +} + static void gtk_gesture_init (GtkGesture *gesture) { @@ -1000,7 +1011,7 @@ gtk_gesture_init (GtkGesture *gesture) priv = gtk_gesture_get_instance_private (gesture); priv->points = g_hash_table_new_full (NULL, NULL, NULL, - (GDestroyNotify) g_free); + (GDestroyNotify) free_point_data); gtk_event_controller_set_event_mask (GTK_EVENT_CONTROLLER (gesture), GDK_TOUCH_MASK | GDK_TOUCHPAD_GESTURE_MASK); -- cgit v1.2.1