[evolution-patches] 58642, eds abort on client exit
- From: Not Zed <notzed ximian com>
- To: evolution-patches lists ximian com
- Subject: [evolution-patches] 58642, eds abort on client exit
- Date: Mon, 02 Aug 2004 15:39:53 +0800
fwiw eds still has clients around even though they've all left. this fixes the abort anyway.
Index: calendar/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.302
diff -u -3 -r1.302 ChangeLog
--- calendar/ChangeLog 30 Jul 2004 12:30:43 -0000 1.302
+++ calendar/ChangeLog 2 Aug 2004 05:02:27 -0000
@@ -1,3 +1,12 @@
+2004-08-02 Not Zed <NotZed Ximian com>
+
+ ** See bug #58642.
+
+ * libedata-cal/e-data-cal-factory.c (backend_last_client_gone_cb):
+ the table key includes the kidn for some reason.
+ (impl_CalFactory_getCal): store the icalkind in the uri, not the
+ calobjtype. Fix a memory leak.
+
2004-07-30 Harish Krishnaswamy <kharish novell com>
Fixes #59335
Index: calendar/libedata-cal/e-data-cal-factory.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/libedata-cal/e-data-cal-factory.c,v
retrieving revision 1.8
diff -u -3 -r1.8 e-data-cal-factory.c
--- calendar/libedata-cal/e-data-cal-factory.c 28 May 2004 10:14:24 -0000 1.8
+++ calendar/libedata-cal/e-data-cal-factory.c 2 Aug 2004 05:02:27 -0000
@@ -58,6 +58,7 @@
static guint signals[LAST_SIGNAL];
/* Opening calendars */
+
static icalcomponent_kind
calobjtype_to_icalkind (const GNOME_Evolution_Calendar_CalObjType type)
{
@@ -122,6 +123,7 @@
EDataCalFactoryPrivate *priv;
ECalBackend *ret_backend;
const char *uristr;
+ char *uri;
fprintf (stderr, "backend_last_client_gone_cb() called!\n");
@@ -132,18 +134,19 @@
uristr = e_cal_backend_get_uri (backend);
g_assert (uristr != NULL);
+ uri = g_strdup_printf("%s:%d", uristr, (int)e_cal_backend_get_kind(backend));
- ret_backend = lookup_backend (factory, uristr);
+ ret_backend = lookup_backend (factory, uri);
g_assert (ret_backend != NULL);
g_assert (ret_backend == backend);
- g_hash_table_remove (priv->backends, uristr);
+ g_hash_table_remove (priv->backends, uri);
+ g_free(uri);
g_signal_handlers_disconnect_matched (backend, G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL, data);
/* Notify upstream if there are no more backends */
-
if (g_hash_table_size (priv->backends) == 0)
g_signal_emit (G_OBJECT (factory), signals[LAST_CALENDAR_GONE], 0);
}
@@ -197,7 +200,9 @@
return CORBA_OBJECT_NIL;
}
- uri_type_string = g_strdup_printf ("%s:%d", e_uri_to_string (uri, FALSE), type);
+ str_uri = e_uri_to_string(uri, FALSE);
+ uri_type_string = g_strdup_printf ("%s:%d", str_uri, (int)calobjtype_to_icalkind (type));
+ g_free(str_uri);
/* Find the associated backend type (if any) */
backend_type = get_backend_type (priv->methods, uri->protocol, calobjtype_to_icalkind (type));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]