From 8f01d97298b6f7d226fc5df4a0d8afe8f78c55c1 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 6 Jun 2011 15:54:19 +0200 Subject: Bug #643526 - Crash in et_get_n_children --- widgets/table/gal-a11y-e-table.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'widgets/table/gal-a11y-e-table.c') diff --git a/widgets/table/gal-a11y-e-table.c b/widgets/table/gal-a11y-e-table.c index 5db3f44b22..436de1ec0f 100644 --- a/widgets/table/gal-a11y-e-table.c +++ b/widgets/table/gal-a11y-e-table.c @@ -131,7 +131,7 @@ et_get_n_children (AtkObject *accessible) et = E_TABLE (gtk_accessible_get_widget (GTK_ACCESSIBLE (a11y))); - if (et->group) { + if (et && et->group) { if (E_IS_TABLE_GROUP_LEAF (et->group)) n = 1; else if (E_IS_TABLE_GROUP_CONTAINER (et->group)) { @@ -155,6 +155,8 @@ et_ref_child (AtkObject *accessible, gint child_no; et = E_TABLE (gtk_accessible_get_widget (GTK_ACCESSIBLE (a11y))); + if (!et) + return NULL; child_no = et_get_n_children (accessible); if (i == 0 || i < child_no - 1) { @@ -283,8 +285,7 @@ gal_a11y_e_table_new (GObject *widget) a11y = g_object_new (gal_a11y_e_table_get_type (), NULL); - /* FIXME No way to do this in GTK 3. */ - /*GTK_ACCESSIBLE (a11y)->widget = GTK_WIDGET (widget);*/ + gtk_accessible_set_widget (GTK_ACCESSIBLE (a11y), GTK_WIDGET (widget)); /* we need to init all the children for multiple table items */ if (table && gtk_widget_get_mapped (GTK_WIDGET (table)) && table->group && E_IS_TABLE_GROUP_CONTAINER (table->group)) { -- cgit v1.2.3