GNOME Bugzilla – Bug 648616
ABI maintenance tasks
Last modified: 2021-06-10 11:27:49 UTC
It would be good to apply some "good practices" related to be able to add changes on ATK without break the ABI. I have detected these tasks: 1. Use accessor functions instead of direct access on AtkObject Equivalent to bug 585391 (fixed, on gtk). Right now the data on AtkObject is accessed public, and some implementators access that directly. So it would be required to ensure accessors for all. 2. Use private structures: Related to the previous one. On AtkGObject that means move the public data to a private structure. It could be good to create private structures also for other GObjects like: * AtkGObjectAccessible * AtkObjectFactory * etc. Just in case. We can add the private structure, and if required, the private implementation could add parameters to i. 3. Review the padding. Most of the objects and interfaces have some padding on the class structure. Some things to think about: * It is enough the current number of paddings? * Do atk really need the typedef AtkFunction? IMHO, it is somewhat silly to define a typedef to a basic type like gpointer to be used just for the paddings. In the same way, when someone find AtkFunction the first thought is that this is something important and really used. Projects like gtk and clutter use directly gpointer. * Atk uses the next format: AtkFunction pad1; AtkFunction pad2; Probably inherited from gtk But clutter uses this format: /* padding for future expansion */ gpointer _padding_dummy[29]; Probably cleaner, although this is just a cosmetic change This bug is somewhat related to bug 551680
Spinning bugs off into discrete tasks. Yes I am that anal-retentive. :-P * Bug 653246 is for the use of accessor functions. * (Bug 647488 addresses the use of private structures.) * Bug 653244 is for the padding.
[Mass-reassigning open atk bug reports for better trackability as requested in https://bugzilla.gnome.org/show_bug.cgi?id=653179 . PLEASE NOTE: If you have watched the previous assignee of this bug report as a workaround for actually getting notified of changes in atk bugs, you yourself will now have to add atk-maint@gnome.bugs to your watchlist at the bottom of https://bugzilla.gnome.org/userprefs.cgi?tab=email to keep watching atk bug reports in GNOME Bugzilla. Sorry for the noise: Feel free to filter for this comment in order to mass-delete the triggered bugmail.]
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version of atk, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a ticket at https://gitlab.gnome.org/GNOME/atk/-/issues/ Thank you for your understanding and your help.