[evolution-data-server] [http calendar] Ref backend inside source_changed_cb()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] [http calendar] Ref backend inside source_changed_cb()
- Date: Wed, 9 Jan 2013 14:41:32 +0000 (UTC)
commit 9c51a13fafb05af60caeb6ab19e77ca4c715f72a
Author: Milan Crha <mcrha redhat com>
Date: Wed Jan 9 15:41:10 2013 +0100
[http calendar] Ref backend inside source_changed_cb()
In certain situation, the backend can be freed while the callback
is still in action, then the factory can crash inside
cal_backend_http_ensure_uri() or such.
calendar/backends/http/e-cal-backend-http.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/calendar/backends/http/e-cal-backend-http.c b/calendar/backends/http/e-cal-backend-http.c
index 4943810..c2db383 100644
--- a/calendar/backends/http/e-cal-backend-http.c
+++ b/calendar/backends/http/e-cal-backend-http.c
@@ -781,6 +781,8 @@ source_changed_cb (ESource *source,
{
g_return_if_fail (E_IS_CAL_BACKEND_HTTP (cbhttp));
+ g_object_ref (cbhttp);
+
if (cbhttp->priv->uri != NULL) {
gboolean uri_changed;
const gchar *new_uri;
@@ -804,6 +806,8 @@ source_changed_cb (ESource *source,
g_free (old_uri);
}
+
+ g_object_unref (cbhttp);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]