Don't leak all AT contexts
authorMatthias Clasen <mclasen@redhat.com>
Thu, 23 Mar 2023 03:41:40 +0000 (23:41 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 23 Mar 2023 03:41:40 +0000 (23:41 -0400)
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
gtk/gtkwidget.c

index eaf7f04d11e69c4d8bbe4358c8b64290df2dd174..9e5aae0ac2dda1ad643e153e2c9a6c926db01dbd 100644 (file)
@@ -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 *