diff options
-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); |