diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-04-07 20:40:22 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-04-07 20:43:38 +0800 |
commit | 280cd635f51af340e13b81dde87241b75484b8f1 (patch) | |
tree | 28d2c699eb32911439e881a045fb4ff4d90bf7c5 /libempathy-gtk/empathy-location-manager.c | |
parent | ef99f724c790755478e66542bd0b25582d8307a7 (diff) | |
download | gsoc2013-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.
Diffstat (limited to 'libempathy-gtk/empathy-location-manager.c')
-rw-r--r-- | libempathy-gtk/empathy-location-manager.c | 5 |
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 |