On Tue, Aug 06, 2013 at 04:22:40PM +0200, Mario wrote:
> Hi Trevor,
> 
> On 6 August 2013 16:05, Trevor Saunders <trev.saund...@gmail.com> wrote:
> >> 6. In atspi2-atk bridge, check which version of ATK a specific
> >> application is implementing (using atk_get_version()) when
> >> implementing this new atk_text_get_text_for_offset(), so we know
> >> whether we can call atk_text_get_text_for_offset() or we need to use
> >> the old atk_text_get_text_at_offset() and a *_START boundary instead
> >> (for implementors of older versions of ATK).
> >
> > afaik atk_get_version() only tells you what version of libatk-1.0.so you
> > are talking to not what version of the atk headers an application was
> > compiled against.  So I believe that would cause breakage when people
> > compile applications against atk pre this change and then run that
> > application with a newer libatk-1.0.so.
> >
> Yes you are right. We already realized a while ago this part was wrong
> and were already thinking that a better approach would be to use
> ATK_CHECK_VERSION() to know whether we need to use the old API or if
> we can use the new one (and maybe with a fallback to the old API in
> case the app that is running has not been updated yet to it and it's
> still implementing the old functions).

Well, what's important is the version of atk that the application was
compiled against not what version of atk you're compiling atk-bridge
against.  So about the only way I can think of to know what version of
atk a an application was compiled with given only its binary is to see
if it defines a symbol and then arrange to have atk define this symbol
at the same time you add this new virtual function.  However having your
headers inject symbols feels somewhat rude.  I *believe* the symbol
approach will work, but changing vtables and not changing abi feels
dangerous to me and I would try to avoid it unless I had no other
reasonable option.

Trev

> 
> Thanks for the feedback in any case,
> Mario
_______________________________________________
gnome-accessibility-devel mailing list
gnome-accessibility-devel@gnome.org
https://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel

Reply via email to