evolution-jescs r250 - in trunk: . calendar lib
- From: jedywang svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-jescs r250 - in trunk: . calendar lib
- Date: Wed, 27 Feb 2008 09:18:01 +0000 (GMT)
Author: jedywang
Date: Wed Feb 27 09:18:01 2008
New Revision: 250
URL: http://svn.gnome.org/viewvc/evolution-jescs?rev=250&view=rev
Log:
2008-02-27 Wang Xin <jedy wang sun com>
Free memory returned by icaltime_as_ical_string.
More info, please refer to #516408.
Bump to 2.21.91.
Modified:
trunk/ChangeLog
trunk/calendar/cal-backend-wcap-events.c
trunk/calendar/cal-backend-wcap-tasks.c
trunk/calendar/cal-backend-wcap.c
trunk/calendar/cal-backend-wcap.h
trunk/configure.in
trunk/lib/sunone-connection.c
trunk/lib/sunone-util.c
Modified: trunk/calendar/cal-backend-wcap-events.c
==============================================================================
--- trunk/calendar/cal-backend-wcap-events.c (original)
+++ trunk/calendar/cal-backend-wcap-events.c Wed Feb 27 09:18:01 2008
@@ -604,6 +604,7 @@
const char *unmangled_uid;
guint error_code;
char *calobj;
+ char *ridstr;
d(printf("cal_backend_wcap_evnets_remove_object(%p, %s, %s)\n", backend, uid, rid));
@@ -627,11 +628,14 @@
sunone_util_unmangle_uid (comp);
e_cal_component_get_uid (comp, &unmangled_uid);
- rid = cal_backend_wcap_get_rid_string (comp);
+ ridstr = cal_backend_wcap_get_rid_string (comp);
- error_code = sunone_connection_deleteevents_by_id (cal_backend_wcap_get_connection (wcap), cal_backend_wcap_get_calid (wcap),
- unmangled_uid, rid,
- cal_backend_wcap_to_sunone_mod (mod, comp));
+ error_code = sunone_connection_deleteevents_by_id (
+ cal_backend_wcap_get_connection (wcap),
+ cal_backend_wcap_get_calid (wcap),
+ unmangled_uid, ridstr,
+ cal_backend_wcap_to_sunone_mod (mod, comp));
+ g_free (ridstr);
g_object_unref (G_OBJECT (comp));
Modified: trunk/calendar/cal-backend-wcap-tasks.c
==============================================================================
--- trunk/calendar/cal-backend-wcap-tasks.c (original)
+++ trunk/calendar/cal-backend-wcap-tasks.c Wed Feb 27 09:18:01 2008
@@ -278,6 +278,7 @@
ECalBackendSyncStatus status;
guint error_code;
char *calobj;
+ char *ridstr;
d(printf("cal_backend_wcap_tasks_remove_object(%p, %s, %s)\n", backend, uid, rid));
@@ -299,11 +300,14 @@
e_cal_component_set_icalcomponent (comp, icalcomp);
e_cal_component_get_uid (comp, &uid);
- rid = cal_backend_wcap_get_rid_string (comp);
+ ridstr = cal_backend_wcap_get_rid_string (comp);
- error_code = sunone_connection_deletetodos_by_id (cal_backend_wcap_get_connection (wcap), cal_backend_wcap_get_calid (wcap),
- uid, rid,
- cal_backend_wcap_to_sunone_mod (mod, comp));
+ error_code = sunone_connection_deletetodos_by_id (
+ cal_backend_wcap_get_connection (wcap),
+ cal_backend_wcap_get_calid (wcap),
+ uid, ridstr,
+ cal_backend_wcap_to_sunone_mod (mod, comp));
+ g_free (ridstr);
if (!SUNONE_ERROR_IS_SUCCESSFUL (error_code)) {
Modified: trunk/calendar/cal-backend-wcap.c
==============================================================================
--- trunk/calendar/cal-backend-wcap.c (original)
+++ trunk/calendar/cal-backend-wcap.c Wed Feb 27 09:18:01 2008
@@ -306,17 +306,23 @@
if (!start_equal (comp, existing, FALSE) ||
!end_equal (comp, existing, FALSE) ||
!rrules_equal (comp, existing)) {
+ char *rid;
+
+ rid = cal_backend_wcap_get_rid_string (existing);
/* Delete the old ones and let the server re-expand */
if (import_kind == ICAL_VEVENT_COMPONENT)
- sunone_connection_deleteevents_by_id (cal_backend_wcap_get_connection (wcap),
- cal_backend_wcap_get_calid (wcap),
- uid, cal_backend_wcap_get_rid_string (existing),
- cal_backend_wcap_to_sunone_mod (mod, existing));
+ sunone_connection_deleteevents_by_id (
+ cal_backend_wcap_get_connection (wcap),
+ cal_backend_wcap_get_calid (wcap),
+ uid, rid,
+ cal_backend_wcap_to_sunone_mod (mod, existing));
else if (import_kind == ICAL_VTODO_COMPONENT)
- sunone_connection_deletetodos_by_id (cal_backend_wcap_get_connection (wcap),
- cal_backend_wcap_get_calid (wcap),
- uid, cal_backend_wcap_get_rid_string (existing),
- cal_backend_wcap_to_sunone_mod (mod, existing));
+ sunone_connection_deletetodos_by_id (
+ cal_backend_wcap_get_connection (wcap),
+ cal_backend_wcap_get_calid (wcap),
+ uid, rid,
+ cal_backend_wcap_to_sunone_mod (mod, existing));
+ g_free (rid);
clone = icalcomponent_new_clone (import_comp);
prop = icalcomponent_get_first_property (clone, ICAL_RECURRENCEID_PROPERTY);
@@ -585,7 +591,7 @@
return REPLY;
}
-const char *
+char *
cal_backend_wcap_get_rid_string (ECalComponent *comp)
{
ECalComponentRange range;
@@ -593,18 +599,30 @@
e_cal_component_get_recurid (comp, &range);
if (!range.datetime.value)
- return "0";
+ return g_strdup ("0");
tt = *range.datetime.value;
e_cal_component_free_range (&range);
- return icaltime_is_valid_time (tt) && !icaltime_is_null_time (tt) ?
- (const char *)icaltime_as_ical_string (tt) : "0";
+ if (icaltime_is_valid_time (tt) && !icaltime_is_null_time (tt))
+ return icaltime_as_ical_string (tt);
+ else
+ return g_strdup ("0");
}
gint
cal_backend_wcap_instance_list_compare (gconstpointer a, gconstpointer b)
{
- return strcmp (cal_backend_wcap_get_rid_string (E_CAL_COMPONENT (a)), cal_backend_wcap_get_rid_string (E_CAL_COMPONENT (b)));
+ gint ret;
+ char *astr;
+ char *bstr;
+
+ astr = cal_backend_wcap_get_rid_string (E_CAL_COMPONENT (a));
+ bstr = cal_backend_wcap_get_rid_string (E_CAL_COMPONENT (b));
+ ret = strcmp (astr, bstr);
+ g_free (astr);
+ g_free (bstr);
+
+ return ret;
}
static void
@@ -1048,7 +1066,7 @@
ECalComponent *comp = l->data;
g_ptr_array_index (vd->uids, i) = g_strdup (uid);
- g_ptr_array_index (vd->rids, i) = g_strdup (cal_backend_wcap_get_rid_string (comp));
+ g_ptr_array_index (vd->rids, i) = cal_backend_wcap_get_rid_string (comp);
}
}
Modified: trunk/calendar/cal-backend-wcap.h
==============================================================================
--- trunk/calendar/cal-backend-wcap.h (original)
+++ trunk/calendar/cal-backend-wcap.h Wed Feb 27 09:18:01 2008
@@ -50,7 +50,7 @@
gint cal_backend_wcap_instance_list_compare (gconstpointer a, gconstpointer b);
gboolean cal_backend_wcap_poll_cb (gpointer data);
gboolean cal_backend_wcap_is_online (CalBackendWCAP *wcap);
-const char *cal_backend_wcap_get_rid_string (ECalComponent *comp);
+char *cal_backend_wcap_get_rid_string (ECalComponent *comp);
const char *cal_backend_wcap_get_uri (CalBackendWCAP *wcap);
const char *cal_backend_wcap_get_calid (CalBackendWCAP *wcap);
const char *cal_backend_wcap_get_alarm_email (CalBackendWCAP *wcap);
Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in (original)
+++ trunk/configure.in Wed Feb 27 09:18:01 2008
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
-AC_INIT(evolution-jescs, 2.21.90, http://bugzilla.gnome.org/enter_bug.cgi?product=evolution-jescs)
+AC_INIT(evolution-jescs, 2.21.91, http://bugzilla.gnome.org/enter_bug.cgi?product=evolution-jescs)
AC_CONFIG_SRCDIR(README)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
Modified: trunk/lib/sunone-connection.c
==============================================================================
--- trunk/lib/sunone-connection.c (original)
+++ trunk/lib/sunone-connection.c Wed Feb 27 09:18:01 2008
@@ -186,7 +186,7 @@
static void
append_to_query_datetime (SoupURI *uri, const char *param, ECalComponentDateTime *dt, gboolean zero)
{
- const char *string;
+ char *string;
if (!dt->value || !icaltime_is_valid_time (*dt->value)) {
if (zero)
@@ -196,6 +196,7 @@
string = icaltime_as_ical_string (*dt->value);
append_to_query (uri, param, string);
+ g_free (string);
e_cal_component_free_datetime (dt);
}
@@ -339,16 +340,19 @@
for (l = dt_list; l != NULL; l = l->next) {
ECalComponentDateTime *dt = l->data;
char *tmp = string;
+ char *tstr;
if (!dt->value)
continue;
+ tstr = icaltime_as_ical_string (*dt->value);
if (string) {
- string = g_strconcat (string, ";", icaltime_as_ical_string (*dt->value), NULL);
+ string = g_strconcat (string, ";", tstr, NULL);
g_free (tmp);
} else {
- string = g_strdup (icaltime_as_ical_string (*dt->value));
+ string = g_strdup (tstr);
}
+ g_free (tstr);
}
if (string)
append_to_query (uri, param, string);
@@ -490,7 +494,7 @@
ECalComponentAlarmAction action;
ECalComponentAlarmTrigger trigger;
char *atype;
- const char *dtstring;
+ char *dtstring;
if (!e_cal_component_has_alarms (comp)) {
@@ -529,7 +533,8 @@
if (trigger.type == E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE)
dtstring = icaltime_as_ical_string (trigger.u.abs_time);
else
- dtstring = icaldurationtype_as_ical_string (trigger.u.rel_duration);
+ dtstring =
+ g_strdup (icaldurationtype_as_ical_string (trigger.u.rel_duration));
if (atype != NULL && dtstring != NULL) {
ECalComponentText text;
@@ -569,6 +574,7 @@
}
}
}
+ g_free (dtstring);
e_cal_component_alarm_free (alarm);
}
@@ -2124,6 +2130,8 @@
SoupURI *fetch_uri;
SoupMessage *msg;
guint retval;
+ char *tsstr;
+ char *testr;
g_return_val_if_fail (IS_SUNONE_CONNECTION (connection), SOUP_STATUS_CANCELLED);
g_return_val_if_fail (calid != NULL, SUNONE_ERROR_ILLEGAL_CALID_NAME);
@@ -2132,14 +2140,23 @@
/* prepare the URI */
NEW_URI (fetch_uri);
+ if (!icaltime_is_null_time (dtstart))
+ tsstr = icaltime_as_ical_string (dtstart);
+ else
+ tsstr = g_strdup ("0");
+ if (!icaltime_is_null_time (dtend))
+ testr = icaltime_as_ical_string (dtend);
+ else
+ testr = g_strdup ("0");
fetch_uri->path = g_strdup ("/fetchcomponents_by_lastmod.wcap");
fetch_uri->query = g_strdup_printf (
"id=%s&calid=%s&dtstart=%s&dtend=%s&component-type=%s&relativealarm=4&fmt-out=text/calendar&compressed=1",
priv->wcap_session_id,
calid,
- !icaltime_is_null_time (dtstart) ? icaltime_as_ical_string (dtstart) : "0",
- !icaltime_is_null_time (dtend) ? icaltime_as_ical_string (dtend) : "0",
+ tsstr, testr,
type_to_string (type));
+ g_free (tsstr);
+ g_free (testr);
append_to_query_compstate (fetch_uri, "compstate", state);
@@ -2181,6 +2198,8 @@
SoupURI *fetch_uri;
SoupMessage *msg;
guint retval;
+ char *tsstr;
+ char *testr;
g_return_val_if_fail (IS_SUNONE_CONNECTION (connection), SOUP_STATUS_CANCELLED);
g_return_val_if_fail (calid != NULL, SUNONE_ERROR_ILLEGAL_CALID_NAME);
@@ -2189,14 +2208,23 @@
/* prepare the URI */
NEW_URI (fetch_uri);
+ if (!icaltime_is_null_time (dtstart))
+ tsstr = icaltime_as_ical_string (dtstart);
+ else
+ tsstr = g_strdup ("0");
+ if (!icaltime_is_null_time (dtend))
+ testr = icaltime_as_ical_string (dtend);
+ else
+ testr = g_strdup ("0");
fetch_uri->path = g_strdup ("/fetch_deletedcomponents.wcap");
fetch_uri->query = g_strdup_printf (
"id=%s&calid=%s&dtstart=%s&dtend=%s&component-type=%s&fmt-out=text/calendar&recurring=0",
priv->wcap_session_id,
calid,
- !icaltime_is_null_time (dtstart) ? icaltime_as_ical_string (dtstart) : "0",
- !icaltime_is_null_time (dtend) ? icaltime_as_ical_string (dtend) : "0",
+ tsstr, testr,
type_to_string (type));
+ g_free (tsstr);
+ g_free (testr);
/* send the request to the server */
@@ -2227,19 +2255,30 @@
SoupURI *fetch_uri;
SoupMessage *msg;
guint retval;
+ char *tsstr;
+ char *testr;
g_return_val_if_fail (IS_SUNONE_CONNECTION (connection), SOUP_STATUS_CANCELLED);
g_return_val_if_fail (calid != NULL, SUNONE_ERROR_ILLEGAL_CALID_NAME);
/* prepare the URI */
NEW_URI (fetch_uri);
+ if (!icaltime_is_null_time (dtstart))
+ tsstr = icaltime_as_ical_string (dtstart);
+ else
+ tsstr = g_strdup ("0");
+ if (!icaltime_is_null_time (dtend))
+ testr = icaltime_as_ical_string (dtend);
+ else
+ testr = g_strdup ("0");
fetch_uri->path = g_strdup ("/get_freebusy.wcap");
fetch_uri->query = g_strdup_printf (
"id=%s&calid=%s&dtstart=%s&dtend=%s&tzid=UTC&tzidout=UTC&busyonly=1&fmt-out=text/calendar&compressed=1",
priv->wcap_session_id,
calid,
- !icaltime_is_null_time (dtstart) ? icaltime_as_ical_string (dtstart) : "0",
- !icaltime_is_null_time (dtend) ? icaltime_as_ical_string (dtend) : "0");
+ tsstr, testr);
+ g_free (tsstr);
+ g_free (testr);
/* send the request to the server */
msg = sunone_message_new_from_uri (fetch_uri, SOUP_METHOD_GET);
@@ -2257,16 +2296,27 @@
/* For WCAP 3.0, maybe calid is a mail address, try again */
if (!IS_CNC_WCAP_2_0(connection) && !SUNONE_ERROR_IS_SUCCESSFUL (msg->status_code)) {
+ char *tsstr;
+ char *testr;
/* prepare the URI */
NEW_URI (fetch_uri);
+ if (!icaltime_is_null_time (dtstart))
+ tsstr = icaltime_as_ical_string (dtstart);
+ else
+ tsstr = g_strdup ("0");
+ if (!icaltime_is_null_time (dtend))
+ testr = icaltime_as_ical_string (dtend);
+ else
+ testr = g_strdup ("0");
fetch_uri->path = g_strdup ("/get_freebusy.wcap");
fetch_uri->query = g_strdup_printf (
"id=%s&mail=%s&dtstart=%s&dtend=%s&tzid=UTC&tzidout=UTC&busyonly=1&fmt-out=text/calendar&compressed=1",
priv->wcap_session_id,
calid,
- !icaltime_is_null_time (dtstart) ? icaltime_as_ical_string (dtstart) : "0",
- !icaltime_is_null_time (dtend) ? icaltime_as_ical_string (dtend) : "0");
+ tsstr, testr);
+ g_free (tsstr);
+ g_free (testr);
/* send the request to the server */
msg = sunone_message_new_from_uri (fetch_uri, SOUP_METHOD_GET);
@@ -2632,6 +2682,7 @@
icalproperty_status status;
const char *const_string;
int *num;
+ char *tstr;
g_return_val_if_fail (IS_SUNONE_CONNECTION (connection), SOUP_STATUS_CANCELLED);
g_return_val_if_fail (calid != NULL, SUNONE_ERROR_ILLEGAL_CALID_NAME);
@@ -2671,7 +2722,12 @@
/* Completed */
e_cal_component_get_completed (comp, &t);
- append_to_query (fetch_uri, "completed", t ? icaltime_as_ical_string (*t) : "0");
+ if (t)
+ tstr = icaltime_as_ical_string (*t);
+ else
+ tstr = g_strdup ("0");
+ append_to_query (fetch_uri, "completed", tstr);
+ g_free (tstr);
/* Description */
e_cal_component_get_description_list (comp, &slist);
Modified: trunk/lib/sunone-util.c
==============================================================================
--- trunk/lib/sunone-util.c (original)
+++ trunk/lib/sunone-util.c Wed Feb 27 09:18:01 2008
@@ -97,14 +97,17 @@
const char *uid;
ECalComponentRange rid;
char *new_uid;
+ char *tstr;
e_cal_component_get_recurid (comp, &rid);
if (!rid.datetime.value)
return;
+ tstr = icaltime_as_ical_string (*rid.datetime.value);
e_cal_component_get_uid (comp, &uid);
- new_uid = g_strconcat (uid, icaltime_as_ical_string (*rid.datetime.value), NULL);
+ new_uid = g_strconcat (uid, tstr, NULL);
e_cal_component_set_uid (comp, new_uid);
+ g_free (tstr);
g_free (new_uid);
e_cal_component_free_range (&rid);
@@ -116,7 +119,7 @@
const char *uid;
ECalComponentRange rid;
char *new_uid;
- const char *rid_string;
+ char *rid_string;
e_cal_component_get_recurid (comp, &rid);
if (!rid.datetime.value)
@@ -126,6 +129,7 @@
new_uid = g_strdup (uid);
rid_string = icaltime_as_ical_string (*rid.datetime.value);
new_uid[strlen (uid) - strlen (rid_string)] = '\0';
+ g_free (rid_string);
e_cal_component_set_uid (comp, new_uid);
g_free (new_uid);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]