summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2012-10-29 16:05:47 (GMT)
committerMilan Crha <mcrha@redhat.com>2012-10-29 16:05:47 (GMT)
commit5323e33d2986e049f78c985c9b028870c0993748 (patch)
tree122bdac36def1e0317602db66ad313b37ffd8a2b
parenta0d04e1ce5dacc564782d1a8300f61d2e4a74087 (diff)
downloadevolution-data-server-5323e33d2986e049f78c985c9b028870c0993748.zip
evolution-data-server-5323e33d2986e049f78c985c9b028870c0993748.tar.xz
Bug 687100 - Crash under cal_backend_contacts_remove_book_record()
-rw-r--r--calendar/backends/contacts/e-cal-backend-contacts.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/calendar/backends/contacts/e-cal-backend-contacts.c b/calendar/backends/contacts/e-cal-backend-contacts.c
index 786b13d..9e8ee14 100644
--- a/calendar/backends/contacts/e-cal-backend-contacts.c
+++ b/calendar/backends/contacts/e-cal-backend-contacts.c
@@ -1323,6 +1323,18 @@ e_cal_backend_contacts_finalize (GObject *object)
}
static void
+e_cal_backend_contacts_dispose (GObject *object)
+{
+ ESourceRegistry *registry;
+
+ registry = e_cal_backend_get_registry (E_CAL_BACKEND (object));
+ g_signal_handlers_disconnect_by_data (registry, object);
+
+ /* Chain up to parent's dispose() method. */
+ G_OBJECT_CLASS (e_cal_backend_contacts_parent_class)->dispose (object);
+}
+
+static void
e_cal_backend_contacts_constructed (GObject *object)
{
/* Load address book sources from an idle callback
@@ -1405,6 +1417,7 @@ e_cal_backend_contacts_class_init (ECalBackendContactsClass *class)
sync_class = (ECalBackendSyncClass *) class;
object_class->finalize = e_cal_backend_contacts_finalize;
+ object_class->dispose = e_cal_backend_contacts_dispose;
object_class->constructed = e_cal_backend_contacts_constructed;
sync_class->get_backend_property_sync = e_cal_backend_contacts_get_backend_property;