From: Matthias Clasen Date: Thu, 23 Mar 2023 03:41:40 +0000 (-0400) Subject: Don't leak all AT contexts X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~4^2~25^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=804d6cf6c9646890907b2f4121280ffb1304f549;p=gtk4.git Don't leak all AT contexts create_at_context was confused - it stored a reference to the newly created context in priv->context, but then also returned a reference, and the caller stored that in priv->context again. Change it to only return a reference. Fixes: #5690 (cherry picked from commit 7b22983be58b7f96afa85399f0f7b86b0a4b8e09) --- diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 974e126172..b933ac513d 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -8499,11 +8499,7 @@ create_at_context (GtkWidget *self) role = class_priv->accessible_role; priv->accessible_role = role; - priv->at_context = gtk_at_context_create (role, GTK_ACCESSIBLE (self), gdk_display_get_default ()); - if (priv->at_context != NULL) - return g_object_ref (priv->at_context); - - return NULL; + return gtk_at_context_create (role, GTK_ACCESSIBLE (self), gdk_display_get_default ()); } static GtkATContext *