aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/gal-a11y-e-table-item.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2012-03-16 20:47:20 +0800
committerMilan Crha <mcrha@redhat.com>2012-03-16 20:47:20 +0800
commit60f3e852e7246e3107b80cfa72a76e0c50753ede (patch)
tree091c99289f14a91d80a6b97db27bc5a3789d8fbf /widgets/table/gal-a11y-e-table-item.c
parent608069630f978c2da37bc57ee58342ba9d16f70f (diff)
downloadgsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar.gz
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar.bz2
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar.lz
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar.xz
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.tar.zst
gsoc2013-evolution-60f3e852e7246e3107b80cfa72a76e0c50753ede.zip
Bug #665130 - Memory leaks in Preferences and ETable
Diffstat (limited to 'widgets/table/gal-a11y-e-table-item.c')
-rw-r--r--widgets/table/gal-a11y-e-table-item.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/widgets/table/gal-a11y-e-table-item.c b/widgets/table/gal-a11y-e-table-item.c
index 2c6de549b9..ea9c12b1d7 100644
--- a/widgets/table/gal-a11y-e-table-item.c
+++ b/widgets/table/gal-a11y-e-table-item.c
@@ -72,6 +72,21 @@ static gboolean gal_a11y_e_table_item_unref_selection (GalA11yETableItem *a11y);
static AtkObject * eti_ref_at (AtkTable *table, gint row, gint column);
static void
+free_columns (ETableCol **columns)
+{
+ gint ii;
+
+ if (!columns)
+ return;
+
+ for (ii = 0; columns[ii]; ii++) {
+ g_object_unref (columns[ii]);
+ }
+
+ g_free (columns);
+}
+
+static void
item_finalized (gpointer user_data,
GObject *gone_item)
{
@@ -219,7 +234,7 @@ eti_dispose (GObject *object)
GalA11yETableItemPrivate *priv = GET_PRIVATE (a11y);
if (priv->columns) {
- g_free (priv->columns);
+ free_columns (priv->columns);
priv->columns = NULL;
}
@@ -934,7 +949,7 @@ eti_header_structure_changed (ETableHeader *eth,
g_free (reorder);
g_free (prev_state);
- g_free (priv->columns);
+ free_columns (priv->columns);
priv->columns = cols;
}