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: Tue, 13 Apr 2004 11:15:59 +0800
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]