Re: [evolution-patches] [gal]#52935, evo-1.5 sometime crashes when click on the message list
- From: Not Zed <notzed ximian com>
- To: Eric Zhao <eric zhao sun com>
- Cc: Jeffrey Stedfast <fejj ximian com>, Mike Kestne <mkestner ximian com>, York <yuedong du sun com>, evo-patch <evolution-patches lists ximian com>
- Subject: Re: [evolution-patches] [gal]#52935, evo-1.5 sometime crashes when click on the message list
- Date: Wed, 21 Apr 2004 10:10:11 +0800
Since nobody has stood up, i think you should just go ahead with this patch.
If it introduces new bugs they can be sorted out later.
On Tue, 2004-04-13 at 22:17 +0800, Eric Zhao wrote:
Hi,
I modified the patch as Zed suggested. Would anybody give this patch a
review?
Thanks,
Eric
On Tue, 2004-04-13 at 11:15, Not Zed wrote:
> Something really minor:
>
> + cell = atk_table_ref_at (ATK_TABLE (a11y), row, col);
> + if (cell != NULL) {
> + if (ATK_IS_OBJECT (cell)) {
> + gal_a11y_e_cell_add_state(cell,
> ATK_STATE_FOCUSED, FALSE);
> + atk_focus_tracker_notify (cell);
> + }
> + }
>
> more readable (to me):
> if (cell != NULL && ATK_IS_OBJECT(cell)) {
> ...
> }
>
> Other than that, really no idea. Is anyone ever going to approve this
> patch? Who is maintaining GAL now?
>
> Michael
>
> On Sun, 2004-04-11 at 16:53 +0800, Eric Zhao wrote:
> > Hi,
> > Attached is a patch which fixed bug #52935. This is a very critical
> > bug, which caused a lot of crash when having accessibility enabled.
> >
> > This bug can be reproduced by the following steps:
> > 1. start evolution with a11y enabled
> > 2. goto a mail folder with few messages
> > 3. click on the message.
> > 4. switch to another folder which contains a lot of messages, click to
> > the message list several times, then evolution will goto crash at most
> > times.
> >
> > The bug is caused by the following reason:
> > the cell_data pointer (used to the retrieve the AtkObject of table
> > cell) is initialize the first folder is accessed, when switched to
> > another folder, the cell_data pointer keeps the original value ( The
> > cell_data pointer's value should change, but it didn't. )
> >
> > Then if we access a message out of the first folder's range(in another
> > folder), the AtkObject which we get via cell_data pointer is invalid,
> > and a SIGSEGV signal is raised.
> >
> > Since we can't figure out which messages have been changed when the
> > message-list is changed(when deleting a message, inserting a new message,
> > switching mail folder, etc.), so we have to clear all the AtkObjects stored
> > in the cell_data, and reinit it the next time we access it. As the clearing
> > operation will cause a noticeable latency when the current-folder contains
> > a lot of mails, this is not a very good solution, but it can just work.
> >
> > --
> > Regards,
> > Eric
>
> Michael Zucchi
> <notzed ximian com>
>
> Ximian Evolution
> Software Developer
>
>
> Novell, Inc.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]