widget: Fix a memory leak
authorMatthias Clasen <mclasen@redhat.com>
Wed, 25 Dec 2019 05:40:32 +0000 (00:40 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 25 Dec 2019 14:47:22 +0000 (09:47 -0500)
The transform passed to gtk_widget_allocate is
transfer full, so we must consume the reference
before returning.

gtk/gtkwidget.c

index 1c03acb20fa09c98f6381075a69577ccf4acbc3d..c1bd09842ec8192f48863b6a2df7168b08206f13 100644 (file)
@@ -4317,7 +4317,10 @@ gtk_widget_allocate (GtkWidget    *widget,
   gtk_widget_push_verify_invariants (widget);
 
   if (!priv->visible && !GTK_IS_ROOT (widget))
-    goto out;
+    {
+      gsk_transform_unref (transform);
+      goto out;
+    }
 
 #ifdef G_ENABLE_DEBUG
   if (GTK_DISPLAY_DEBUG_CHECK (_gtk_widget_get_display (widget), RESIZE))