Re: [evolution-patches] [gal]#52935, evo-1.5 sometime crashes when click on the message list




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.
Michael Zucchi <notzed ximian com>

Ximian Evolution and Free Software Developer


Novell, Inc.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]