Skip to content
  • Benjamin Otte's avatar
    a11y: Fix refcounting for treeview cells · af4b26f5
    Benjamin Otte authored
    Old code assumed that AT-SPI would keep track of references and
    therefore tried to only hold weak references. On the other hand it also
    tried to keep objects alive so it referenced objects very randomly. All
    of that lead to cycles and leaking.
    
    As AT-SPI does not keep track of objects at all, the treeview now does.
    The refcounting looks as follows:
    GtkTreeViewAccessible
      => creates per row/column
    GtkTreeViewAccessibleCellInfo
      => which references 1
    GtkCellAccessible
    
    If there is only one cell, this accessible is a
    GtkRendererCellAccessible, otherwise a GtkContainerCellAccessible is
    created and that accessible holds references to the
    GtkRendererCellAccessibles that are created for every cell renderer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=554618
    af4b26f5