[evolution-data-server/gnome-3-6] [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/gnome-3-6] [http calendar] Ref backend inside source_changed_cb()
- Date: Wed, 9 Jan 2013 14:42:13 +0000 (UTC)
commit 34de3edc54e632feee57c2b985c702566c7cb126
Author: Milan Crha <mcrha redhat com>
Date: Wed Jan 9 15:41:43 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 d12fa7a..82e186a 100644
--- a/calendar/backends/http/e-cal-backend-http.c
+++ b/calendar/backends/http/e-cal-backend-http.c
@@ -783,6 +783,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;
@@ -806,6 +808,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]