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 | |
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.
-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 |