Re: [g-a-devel]Re: at-spi text API patch for 100944, as previously discussed.
- From: Michael Meeks <michael ximian com>
- To: Bill Haneman <bill haneman sun com>
- Cc: Mark McLoughlin <mark skynet ie>, accessibility mailing list <gnome-accessibility-devel gnome org>, Release Team <release-team gnome org>
- Subject: Re: [g-a-devel]Re: at-spi text API patch for 100944, as previously discussed.
- Date: 18 Dec 2002 10:39:18 +0000
Hi Bill,
On Wed, 2002-12-18 at 00:06, Bill Haneman wrote:
> FWIW the latest version should always be in bugzilla
Ok - so, reading it through there are some good things here. Just a few
comments.
* Add a CORBA_any to the Range thing - it cost little to marshal
an extra CORBA_tk_null or somesuch, but it could be most
valuable in future.
* It's nice to see the extra indirection on the
AccessibleTextRange array, so we can expand that later - good.
* Great to see the duplicate non-moved mouse event culling :-)
OTOH, there are a couple of problems:
* get_accessible_text_ranges_from_range_seq
+ leaks the sequence
+ doesn't copy the contents into array
I suggest fixing that by (for now) by not allocating the
'array', and pointing into the CORBA sequence itself. For now
you could make that work by NULL'ing seq->_buffer and then
CORBA_freeing that, then subsequently CORBA_freeing (ranges[0])
which must point to the first element of that array.
* _freeRanges is just bunk ;-) if you do the above it should be:
CORBA_free (ranges [0]);
g_free (ranges); // of course you didn't alloc array
* _spi_text_range_seq_from_gslist
This method deep frees the structure in the list, and
but memcopies a pointer to the string 'contents' into the
sequence resulting in a slew of FMRs. Also range->content is
allocated with the g_malloc set of allocators, instead of the
CORBA allocators.
It would be entirely better here to just g_alloc the
Text_Range struct in getBoundedRanges, CORBA_string_dup the
contents in there, and build the g_slist. [ ensure you g_free
the return value from the atk_..._get_text ].
Then in seq_from_gslist, do a memcopy of the holding
Text_Range struct into the sequence, and g_free it; then you
have transfered ownership more cleanly.
I havn't looked much deeper than that - those were the only problems I
could see immediately.
HTH,
Michael.
--
mmeeks gnu org <><, Pseudo Engineer, itinerant idiot
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]