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



Thanks!

Regards,
Eric

On Wed, 2004-04-21 at 10:10, Not Zed wrote:
> 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 Evolutionand
> Free Software Developer
> 
> 
> Novell, Inc.




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