After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 302296 - gailcell/gailtreeview lifecycle needs rework
gailcell/gailtreeview lifecycle needs rework
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Accessibility
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
AP2
Depends on:
Blocks:
 
 
Reported: 2005-04-28 14:10 UTC by bill.haneman
Modified: 2011-12-30 07:11 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description bill.haneman 2005-04-28 14:10:43 UTC
examine the code.
Note that currently we attempt to maintain a 'flyweight' cache of objects which
we don't hold persistent refs to, and rely on gobject weak refs which notify us
on destroy.  There are two problems - for one, because we call a lot of
gtktreeview/gtktreemodel api and emit signals while manipulating our cache of
flyweight references, it's very easy for objects in our list to die while we're
messing with them or traversing the list.  Even if we keep track of a flag in
the cell_info indicating that a cell has died, we may continue to operate on a
cell (AtkObject instance) in the destroy handler, which can result in calling
atk_object API on an object which has been unreffed already; this is unsafe and
in fact even the basic GType macros can fail when called on destroyed GObject
references.

Obviously architectural changes are required.
Comment 1 bill.haneman 2005-04-28 14:11:48 UTC
BTW I don't think there's a need to mirror this in Sun's internal bug tracker
until/unless outward symptoms manifest.  See bug 163583 which has been patched
with a stopgap measure.
Comment 2 Matthias Clasen 2011-12-30 07:11:07 UTC
Should be mostly addressed by Benjamins recent work