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 648616 - ABI maintenance tasks
ABI maintenance tasks
Status: RESOLVED OBSOLETE
Product: atk
Classification: Platform
Component: atk
unspecified
Other Linux
: Normal normal
: ---
Assigned To: ATK maintainer(s)
ATK maintainer(s)
Depends on: 551680 647488
Blocks: 638537
 
 
Reported: 2011-04-25 14:36 UTC by Alejandro Piñeiro Iglesias (IRC: infapi00)
Modified: 2021-06-10 11:27 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Alejandro Piñeiro Iglesias (IRC: infapi00) 2011-04-25 14:36:03 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
Comment 1 Joanmarie Diggs (IRC: joanie) 2011-06-23 16:26:01 UTC
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.
Comment 2 André Klapper 2011-06-23 22:06:52 UTC
[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.]
Comment 3 André Klapper 2021-06-10 11:27:49 UTC
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.