diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-04-14 00:20:48 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-06-30 00:41:54 +0800 |
commit | bdc73471827871c2f9a6f213c1cfa4e9839548a9 (patch) | |
tree | d92faa4f3b57fc88e0956b022975c89a9aa3ec2a | |
parent | fec408b4c5f8059400ba90ead05d1692083cc97a (diff) | |
download | gsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.tar.gz gsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.tar.zst gsoc2013-evolution-bdc73471827871c2f9a6f213c1cfa4e9839548a9.zip |
Work around another a11y crash.
Some kind of object lifetime issue in GalA11yETableItem. Just work
around it for now. Killing this class would pretty much mean killing
a11y support for ETables entirely and I'm not that pissed off... yet.
-rw-r--r-- | widgets/table/gal-a11y-e-table-item.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/widgets/table/gal-a11y-e-table-item.c b/widgets/table/gal-a11y-e-table-item.c index eb0c9be127..f35eeb1a69 100644 --- a/widgets/table/gal-a11y-e-table-item.c +++ b/widgets/table/gal-a11y-e-table-item.c @@ -71,8 +71,16 @@ static AtkObject* eti_ref_at (AtkTable *table, gint row, gint column); static void item_finalized (gpointer user_data, GObject *gone_item) { - GalA11yETableItem *a11y = GAL_A11Y_E_TABLE_ITEM (user_data); - GalA11yETableItemPrivate *priv = GET_PRIVATE (a11y); + GalA11yETableItem *a11y; + GalA11yETableItemPrivate *priv; + + /* XXX GalA11yETableItem may already be finalized. + * Just work around it for now. */ + if (!GAL_A11Y_IS_E_TABLE_ITEM (user_data)) + return; + + a11y = GAL_A11Y_E_TABLE_ITEM (user_data); + priv = GET_PRIVATE (a11y); atk_state_set_add_state (priv->state_set, ATK_STATE_DEFUNCT); atk_object_notify_state_change (ATK_OBJECT (a11y), ATK_STATE_DEFUNCT, TRUE); |