diff options
| author | Matthias Clasen <mclasen@redhat.com> | 2019-12-19 22:54:46 +0000 |
|---|---|---|
| committer | Matthias Clasen <mclasen@redhat.com> | 2019-12-19 22:54:46 +0000 |
| commit | f37673927c52b26c4346fa4311dcc7db4aac878a (patch) | |
| tree | 45d97b9981f0350897d2766a640decb900f6cd55 | |
| parent | e5b05d2478a3b9a2ec8d725e6ee074a377a9313d (diff) | |
| parent | dc896f0910c19524b9c6a5df4676dfde1a3df1d3 (diff) | |
| download | gtk+-f37673927c52b26c4346fa4311dcc7db4aac878a.tar.gz | |
Merge branch 'gtk3-fix-gtkgesturerotate-leak' into 'gtk-3-24'
[gtk3] gtkgesturerotate: Fix a memory leak
See merge request GNOME/gtk!1262
| -rw-r--r-- | gtk/gtkgesturerotate.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gtk/gtkgesturerotate.c b/gtk/gtkgesturerotate.c index 88f27a8526..aba08e8c99 100644 --- a/gtk/gtkgesturerotate.c +++ b/gtk/gtkgesturerotate.c @@ -82,20 +82,20 @@ _gtk_gesture_rotate_get_angle (GtkGestureRotate *rotate, gdouble x1, y1, x2, y2; GtkGesture *gesture; gdouble dx, dy; - GList *sequences; + GList *sequences = NULL; + gboolean retval = FALSE; gesture = GTK_GESTURE (rotate); priv = gtk_gesture_rotate_get_instance_private (rotate); if (!gtk_gesture_is_recognized (gesture)) - return FALSE; + goto out; sequences = gtk_gesture_get_sequences (gesture); if (!sequences) - return FALSE; + goto out; last_event = gtk_gesture_get_last_event (gesture, sequences->data); - if (last_event->type == GDK_TOUCHPAD_PINCH && (last_event->touchpad_pinch.phase == GDK_TOUCHPAD_GESTURE_PHASE_BEGIN || last_event->touchpad_pinch.phase == GDK_TOUCHPAD_GESTURE_PHASE_UPDATE || @@ -106,11 +106,10 @@ _gtk_gesture_rotate_get_angle (GtkGestureRotate *rotate, else { if (!sequences->next) - return FALSE; + goto out; gtk_gesture_get_point (gesture, sequences->data, &x1, &y1); gtk_gesture_get_point (gesture, sequences->next->data, &x2, &y2); - g_list_free (sequences); dx = x1 - x2; dy = y1 - y2; @@ -124,7 +123,11 @@ _gtk_gesture_rotate_get_angle (GtkGestureRotate *rotate, *angle = fmod (*angle, 2 * G_PI); } - return TRUE; + retval = TRUE; + + out: + g_list_free (sequences); + return retval; } static gboolean |
