aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-04-07 20:40:22 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-04-07 20:43:38 +0800
commit280cd635f51af340e13b81dde87241b75484b8f1 (patch)
tree28d2c699eb32911439e881a045fb4ff4d90bf7c5
parentef99f724c790755478e66542bd0b25582d8307a7 (diff)
downloadgsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar.gz
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar.bz2
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar.lz
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar.xz
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.tar.zst
gsoc2013-empathy-280cd635f51af340e13b81dde87241b75484b8f1.zip
location_manager_dispose: chain up to the parent's dispose, not the parent's finalize
This leads to crashes when other code is relying on weak reference notifications happening in the right order.
-rw-r--r--libempathy-gtk/empathy-location-manager.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c
index 4ef27dba7..0422f5cc6 100644
--- a/libempathy-gtk/empathy-location-manager.c
+++ b/libempathy-gtk/empathy-location-manager.c
@@ -98,6 +98,8 @@ static void
location_manager_dispose (GObject *object)
{
EmpathyLocationManagerPriv *priv = GET_PRIV (object);
+ void (*dispose) (GObject *) =
+ G_OBJECT_CLASS (empathy_location_manager_parent_class)->dispose;
if (priv->account_manager != NULL)
{
@@ -129,7 +131,8 @@ location_manager_dispose (GObject *object)
priv->location = NULL;
}
- G_OBJECT_CLASS (empathy_location_manager_parent_class)->finalize (object);
+ if (dispose != NULL)
+ dispose (object);
}
static void