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~1^2~513^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7b22983b;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 --- diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index eaf7f04d11..9e5aae0ac2 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -8501,11 +8501,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 *