Author: pchen
Date: Mon Feb 18 07:33:06 2008
New Revision: 8496
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=8496&view=rev

Log:
2008-02-14  Chenthill Palanisamy  <[EMAIL PROTECTED]>

        Fixes #516408
        * backends/caldav/e-cal-backend-caldav.c
        (e_cal_component_get_href), (e_cal_component_get_etag),
        (synchronize_cache), (pack_cobj), (caldav_modify_object),
        (caldav_remove_object), (process_object), (caldav_get_timezone):
        * backends/contacts/e-cal-backend-contacts.c
        (e_cal_backend_contacts_get_free_busy),
        (e_cal_backend_contacts_get_timezone):
        * backends/file/e-cal-backend-file.c (save_file_when_idle),
        (notify_removals_cb), (notify_adds_modifies_cb),
        (e_cal_backend_file_get_object),
        (e_cal_backend_file_get_timezone),
        (e_cal_backend_file_get_free_busy),
        (e_cal_backend_file_receive_objects):
        * backends/google/e-cal-backend-google-utils.c
        (e_go_item_from_cal_component), (get_date):
        * backends/google/e-cal-backend-google.c
        (e_cal_backend_google_get_timezone):
        * backends/groupwise/e-cal-backend-groupwise-utils.c
        (add_send_options_data_to_item), (set_rrule_from_comp),
        (set_properties_from_cal_component), (start_freebusy_session),
        (e_cal_backend_groupwise_store_settings):
        * backends/groupwise/e-cal-backend-groupwise.c (get_deltas),
        (e_cal_backend_groupwise_get_timezone):
        * backends/http/e-cal-backend-http.c (retrieval_done),
        (e_cal_backend_http_get_default_object),
        (e_cal_backend_http_get_timezone),
        (e_cal_backend_http_get_free_busy):
        * backends/weather/e-cal-backend-weather.c
        * (finished_retrieval_cb),
        (e_cal_backend_weather_get_timezone),
        (e_cal_backend_weather_get_free_busy):
        * libecal/e-cal-component.c (e_cal_component_get_as_string),
        (e_cal_component_get_recurid_as_string):
        * libecal/e-cal-component.h:
        * libecal/e-cal-recur.c (e_cal_recur_set_rule_end_date):
        * libecal/e-cal.c (foreach_tzid_callback),
        (e_cal_get_component_as_string_internal), (e_cal_create_object),
        (e_cal_modify_object), (e_cal_receive_objects),
        (e_cal_send_objects), (e_cal_add_timezone),
        (e_cal_set_default_timezone):
        * libedata-cal/e-cal-backend-cache.c
        (e_cal_backend_cache_put_component),
        (e_cal_backend_cache_put_timezone),
        (e_cal_backend_cache_put_default_timezone):
        * libedata-cal/e-data-cal-view.c (add_object_to_cache):
        * tests/ecal/test-ecal.c (list_uids): Remove the duping of
        * memory
        which is returned from libical and free the returned by libical.        
                                      




Modified:
   trunk/calendar/ChangeLog
   trunk/calendar/backends/caldav/e-cal-backend-caldav.c
   trunk/calendar/backends/contacts/e-cal-backend-contacts.c
   trunk/calendar/backends/file/e-cal-backend-file.c
   trunk/calendar/backends/google/e-cal-backend-google-utils.c
   trunk/calendar/backends/google/e-cal-backend-google.c
   trunk/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c
   trunk/calendar/backends/groupwise/e-cal-backend-groupwise.c
   trunk/calendar/backends/http/e-cal-backend-http.c
   trunk/calendar/backends/weather/e-cal-backend-weather.c
   trunk/calendar/libecal/e-cal-component.c
   trunk/calendar/libecal/e-cal-component.h
   trunk/calendar/libecal/e-cal-recur.c
   trunk/calendar/libecal/e-cal.c
   trunk/calendar/libedata-cal/e-cal-backend-cache.c
   trunk/calendar/libedata-cal/e-data-cal-view.c
   trunk/calendar/tests/ecal/test-ecal.c

Modified: trunk/calendar/backends/caldav/e-cal-backend-caldav.c
==============================================================================
--- trunk/calendar/backends/caldav/e-cal-backend-caldav.c       (original)
+++ trunk/calendar/backends/caldav/e-cal-backend-caldav.c       Mon Feb 18 
07:33:06 2008
@@ -272,7 +272,7 @@
 }
 
 
-static const char *
+static char *
 icomp_x_prop_get (icalcomponent *comp, const char *key)
 {
        icalproperty *xprop;
@@ -308,7 +308,7 @@
        icomp_x_prop_set (icomp, X_E_CALDAV "HREF", href);
 }
 
-static const char *
+static char *
 e_cal_component_get_href (ECalComponent *comp)
 {
        icalcomponent *icomp;
@@ -317,7 +317,7 @@
        str = NULL;
        icomp = e_cal_component_get_icalcomponent (comp);
 
-       str = (char *) icomp_x_prop_get (icomp, X_E_CALDAV "HREF");
+       str =  icomp_x_prop_get (icomp, X_E_CALDAV "HREF");
 
        return str;
 }
@@ -335,7 +335,7 @@
 
 }
 
-static const char *
+static char *
 e_cal_component_get_etag (ECalComponent *comp)
 {
        icalcomponent *icomp;
@@ -344,7 +344,7 @@
        str = NULL;
        icomp = e_cal_component_get_icalcomponent (comp);
 
-       str = (char *) icomp_x_prop_get (icomp, X_E_CALDAV "ETAG");
+       str =  icomp_x_prop_get (icomp, X_E_CALDAV "ETAG");
 
        return str;
 }
@@ -1255,13 +1255,13 @@
                return;
        }
 
-       hindex = g_hash_table_new (g_str_hash, g_str_equal);
+       hindex = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
        cobjs = e_cal_backend_cache_get_components (bcache);
 
        /* build up a index for the href entry */
        for (citer = cobjs; citer; citer = g_list_next (citer)) {
                ECalComponent *ccomp = E_CAL_COMPONENT (citer->data);
-               const char *href;
+               char *href;
 
                href = e_cal_component_get_href (ccomp);
 
@@ -1276,7 +1276,7 @@
        /* see if we have to upate or add some objects */
        for (i = 0, object = sobjs; i < len; i++, object++) {
                ECalComponent *ccomp;
-               const char *etag = NULL;
+               char *etag = NULL;
 
                if (object->status != 200) {
                        /* just continue here, so that the object
@@ -1301,6 +1301,7 @@
                }
 
                caldav_object_free (object, FALSE);
+               g_free (etag);
        }
 
        /* remove old (not on server anymore) items from cache */
@@ -1654,7 +1655,7 @@
 
        g_assert (objstr);
 
-       return g_strdup (objstr);
+       return objstr;
 
 }
 
@@ -1773,8 +1774,8 @@
        if (online) {
                CalDAVObject object;
 
-               object.href  = g_strdup (e_cal_component_get_href (cache_comp));
-               object.etag  = g_strdup (e_cal_component_get_etag (cache_comp));
+               object.href  = e_cal_component_get_href (cache_comp);
+               object.etag  = e_cal_component_get_etag (cache_comp);
                object.cdata = pack_cobj (cbdav, comp);
 
                status = caldav_server_put_object (cbdav, &object);
@@ -1841,8 +1842,8 @@
        if (online) {
                CalDAVObject caldav_object;
 
-               caldav_object.href  = g_strdup (e_cal_component_get_href 
(cache_comp));
-               caldav_object.etag  = g_strdup (e_cal_component_get_etag 
(cache_comp));
+               caldav_object.href  = e_cal_component_get_href (cache_comp);
+               caldav_object.etag  = e_cal_component_get_etag (cache_comp);
                caldav_object.cdata = NULL;
 
                status = caldav_server_delete_object (cbdav, &caldav_object);
@@ -1973,14 +1974,14 @@
                        CalDAVObject object = { NULL, };
 
                        if (ccomp) {
-                               const char *href;
-                               const char *etag;
+                               char *href;
+                               char *etag;
 
                                href = e_cal_component_get_href (ccomp);
                                etag = e_cal_component_get_etag (ccomp);
 
-                               object.href  = g_strdup (href);
-                               object.etag  = g_strdup (etag);
+                               object.href  = href;
+                               object.etag  = etag;
 
                        } else {
                                object.href = e_cal_component_gen_href (ecomp);
@@ -2035,14 +2036,14 @@
                         * of recurring appointments - yet - */
                        if (online) {
                                CalDAVObject object;
-                               const char *href;
-                               const char *etag;
+                               char *href;
+                               char *etag;
 
                                href = e_cal_component_get_href (ccomp);
                                etag = e_cal_component_get_etag (ccomp);
 
-                               object.href  = g_strdup (href);
-                               object.etag  = g_strdup (etag);
+                               object.href  = href;
+                               object.etag  = etag;
                                object.cdata = NULL;
 
                                status = caldav_server_delete_object (cbdav,
@@ -2268,7 +2269,7 @@
                return GNOME_Evolution_Calendar_InvalidObject;
        }
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
 }

Modified: trunk/calendar/backends/contacts/e-cal-backend-contacts.c
==============================================================================
--- trunk/calendar/backends/contacts/e-cal-backend-contacts.c   (original)
+++ trunk/calendar/backends/contacts/e-cal-backend-contacts.c   Mon Feb 18 
07:33:06 2008
@@ -655,7 +655,7 @@
        icalcomponent_set_dtend (vfb, icaltime_from_timet_with_zone (end, 
FALSE, utc_zone));
 
        calobj = icalcomponent_as_ical_string (vfb);
-       *freebusy = g_list_append (NULL, g_strdup (calobj));
+       *freebusy = g_list_append (NULL, calobj);
        icalcomponent_free (vfb);
 
        /* WRITE ME */
@@ -789,7 +789,7 @@
        if (!icalcomp)
                return GNOME_Evolution_Calendar_InvalidObject;
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
 }

Modified: trunk/calendar/backends/file/e-cal-backend-file.c
==============================================================================
--- trunk/calendar/backends/file/e-cal-backend-file.c   (original)
+++ trunk/calendar/backends/file/e-cal-backend-file.c   Mon Feb 18 07:33:06 2008
@@ -174,6 +174,7 @@
 
        buf = icalcomponent_as_ical_string (priv->icalcomp);
        result = gnome_vfs_write (handle, buf, strlen (buf) * sizeof (char), 
&out);
+       g_free (buf);
        gnome_vfs_close (handle);
        if (result != GNOME_VFS_OK) {
                gnome_vfs_uri_unref (uri);
@@ -735,6 +736,7 @@
                e_cal_backend_notify_object_removed (context->backend, id, 
old_obj_str, NULL);
 
                e_cal_component_free_id (id);
+               g_free (old_obj_str);
                g_object_unref (comp);
        }
 }
@@ -763,6 +765,7 @@
                        return;
 
                e_cal_backend_notify_object_created (context->backend, 
new_obj_str);
+               g_free (new_obj_str);
        } else {
                old_icomp = e_cal_component_get_icalcomponent 
(old_obj_data->full_object);
                new_icomp = e_cal_component_get_icalcomponent 
(new_obj_data->full_object);
@@ -779,6 +782,8 @@
 
                        e_cal_backend_notify_object_modified (context->backend, 
old_obj_str, new_obj_str);
                }
+               g_free (old_obj_str);
+               g_free (new_obj_str);
        }
 }
 
@@ -1122,7 +1127,7 @@
                                return GNOME_Evolution_Calendar_ObjectNotFound;
                         }
 
-                       *object = g_strdup (icalcomponent_as_ical_string 
(icalcomp));
+                       *object = icalcomponent_as_ical_string (icalcomp);
 
                        icalcomponent_free (icalcomp);
                }
@@ -1139,7 +1144,7 @@
                        /* add all detached recurrences */
                        g_hash_table_foreach (obj_data->recurrences, (GHFunc) 
add_detached_recur_to_vcalendar, icalcomp);
 
-                       *object = g_strdup (icalcomponent_as_ical_string 
(icalcomp));
+                       *object = icalcomponent_as_ical_string (icalcomp);
 
                        icalcomponent_free (icalcomp);
                } else
@@ -1186,7 +1191,7 @@
                return GNOME_Evolution_Calendar_InvalidObject;
        }
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        g_static_rec_mutex_unlock (&priv->idle_save_rmutex);
        return GNOME_Evolution_Calendar_Success;
@@ -1534,7 +1539,7 @@
                if (e_cal_backend_mail_account_get_default (&address, &name)) {
                        vfb = create_user_free_busy (cbfile, address, name, 
start, end);
                        calobj = icalcomponent_as_ical_string (vfb);
-                       *freebusy = g_list_append (*freebusy, g_strdup 
(calobj));
+                       *freebusy = g_list_append (*freebusy, calobj);
                        icalcomponent_free (vfb);
                        g_free (address);
                        g_free (name);
@@ -1545,7 +1550,7 @@
                        if (e_cal_backend_mail_account_is_valid (address, 
&name)) {
                                vfb = create_user_free_busy (cbfile, address, 
name, start, end);
                                calobj = icalcomponent_as_ical_string (vfb);
-                               *freebusy = g_list_append (*freebusy, g_strdup 
(calobj));
+                               *freebusy = g_list_append (*freebusy, calobj);
                                icalcomponent_free (vfb);
                                g_free (name);
                        }
@@ -2552,7 +2557,7 @@
                case ICAL_METHOD_CANCEL:
                        if (cancel_received_object (cbfile, subcomp)) {
                                ECalComponentId *id;
-                               object = (char *) icalcomponent_as_ical_string 
(subcomp);
+                               object =  icalcomponent_as_ical_string 
(subcomp);
                                obj_data = g_hash_table_lookup 
(priv->comp_uid_hash, uid);
                                if (obj_data)
                                        old_object = 
e_cal_component_get_as_string (obj_data->full_object);
@@ -2569,6 +2574,7 @@
                                e_cal_component_free_id (id);
 
                                g_free (old_object);
+                               g_free (object);
                        }
                        break;
                default:

Modified: trunk/calendar/backends/google/e-cal-backend-google-utils.c
==============================================================================
--- trunk/calendar/backends/google/e-cal-backend-google-utils.c (original)
+++ trunk/calendar/backends/google/e-cal-backend-google-utils.c Mon Feb 18 
07:33:06 2008
@@ -617,14 +617,14 @@
        e_cal_component_get_dtstart (comp, &dt);
        itt = icaltime_convert_to_zone (*dt.value, default_zone);
        dt.value = &itt;
-       temp = g_strdup (get_date (dt));
+       temp = get_date (dt);
        gdata_entry_set_start_time (entry, temp);
 
        /* End Time */
        e_cal_component_get_dtend (comp, &dt);
        itt = icaltime_convert_to_zone (*dt.value, default_zone);
        dt.value = &itt;
-       temp = g_strdup (get_date (dt));
+       temp = get_date (dt);
        gdata_entry_set_end_time (entry, temp);
 
        /* Content / Description */
@@ -815,7 +815,7 @@
 gchar *
 get_date (ECalComponentDateTime dt)
 {
-       const char *temp;
+       char *temp;
        struct icaltimetype itt;
        struct icaltimetype *itt_u;
        gchar *month;
@@ -833,8 +833,6 @@
        itt.is_daylight = itt_u->is_daylight;
        itt.zone = itt_u->zone;
 
-       temp = icaltime_as_ical_string(itt);
-
        month = (itt.month<10) ? g_strdup_printf("0%d", 
itt.month):g_strdup_printf ("%d", itt.month);
        day = (itt.day < 10) ? g_strdup_printf("0%d", itt.day):g_strdup_printf 
("%d", itt.day);
 
@@ -842,9 +840,15 @@
        minute = (itt.minute<10) ? g_strdup_printf("0%d", 
itt.minute):g_strdup_printf ("%d", itt.minute);
        second = (itt.second<10) ? g_strdup_printf ("0%d", 
itt.second):g_strdup_printf ("%d", itt.second);
 
+       /* FIXME not the best way to do this */
        temp =  g_strdup_printf ("%d-%s-%sT%s:%s:%s.000", itt.year, month, day, 
hour, minute, second);
+       g_free (month);
+       g_free (day);
+       g_free (hour);
+       g_free (minute);
+       g_free (second);
 
-       return g_strdup(temp);
+       return temp;
 }
 
 static gboolean

Modified: trunk/calendar/backends/google/e-cal-backend-google.c
==============================================================================
--- trunk/calendar/backends/google/e-cal-backend-google.c       (original)
+++ trunk/calendar/backends/google/e-cal-backend-google.c       Mon Feb 18 
07:33:06 2008
@@ -247,7 +247,7 @@
        if (!icalcomp)
                return GNOME_Evolution_Calendar_InvalidObject;
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
 }

Modified: trunk/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c
==============================================================================
--- trunk/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c   
(original)
+++ trunk/calendar/backends/groupwise/e-cal-backend-groupwise-utils.c   Mon Feb 
18 07:33:06 2008
@@ -170,33 +170,36 @@
                        e_gw_item_set_reply_request (item, TRUE);
                        x_val = icalproperty_get_x (icalprop);
                        if (strcmp (x_val, "convenient")) {
-                               const char *value;
+                               char *value;
                                int i = atoi (x_val);
                                temp = icaltime_current_time_with_zone 
(default_zone ? default_zone : utc);
                                icaltime_adjust (&temp, i, 0, 0, 0);
                                icaltime_set_timezone (&temp, default_zone);
                                temp = icaltime_convert_to_zone (temp, utc);
                                value = icaltime_as_ical_string (temp);
-                               e_gw_item_set_reply_within (item, (char *) 
value);
+                               e_gw_item_set_reply_within (item, value);
+                               g_free (value);
                        }
                } else if (!strcmp (x_name, "X-EVOLUTION-OPTIONS-EXPIRE")) {
-                       const char *expire = NULL;
+                       char *expire = NULL;
                        x_val = icalproperty_get_x (icalprop);
                        temp = icaltime_current_time_with_zone (default_zone ? 
default_zone : utc);
                        icaltime_adjust (&temp, atoi (x_val), 0, 0, 0);
                        icaltime_set_timezone (&temp, default_zone);
                        temp = icaltime_convert_to_zone (temp, utc);
                        expire = icaltime_as_ical_string (temp);
-                       e_gw_item_set_expires (item, (char *) expire);
+                       e_gw_item_set_expires (item, expire);
+                       g_free (expire);
 
                } else if (!strcmp (x_name, "X-EVOLUTION-OPTIONS-DELAY")) {
-                       const char *delay = NULL;
+                       char *delay = NULL;
                        x_val = icalproperty_get_x (icalprop);
                        temp = icaltime_from_string (x_val);
                        icaltime_set_timezone (&temp, default_zone);
                        temp = icaltime_convert_to_zone (temp, utc);
                        delay = icaltime_as_ical_string (temp);
-                       e_gw_item_set_delay_until (item, (char *) delay);
+                       e_gw_item_set_delay_until (item, delay);
+                       g_free (delay);
 
                } else if (!strcmp (x_name, "X-EVOLUTION-OPTIONS-TRACKINFO")) {
                        sendoptions_set = TRUE;
@@ -458,7 +461,6 @@
                /* assumes only one rrule is present  */
                ical_recur = (struct icalrecurrencetype *) rrule_list->data;
 
-               g_message ("DEBUG: Processing rule\n%s\n", 
icalrecurrencetype_as_string (ical_recur));
                /*set the data */
                switch (ical_recur->freq) {
                        case ICAL_DAILY_RECURRENCE :
@@ -479,7 +481,7 @@
                if (ical_recur->count != 0)
                        item_rrule->count = ical_recur->count;
                else
-                       item_rrule->until =  g_strdup (icaltime_as_ical_string 
(ical_recur->until));
+                       item_rrule->until =  icaltime_as_ical_string 
(ical_recur->until);
 
                item_rrule->interval = ical_recur->interval;
 
@@ -511,7 +513,7 @@
                                        if (!icaltime_get_timezone 
(*(dt->value)))
                                                icaltime_set_timezone 
(dt->value, default_zone ? default_zone : utc);
                                        itt_utc = icaltime_convert_to_zone 
(*dt->value, utc);
-                                       item_exdate_list = g_slist_append 
(item_exdate_list, g_strdup (icaltime_as_ical_string (itt_utc)));
+                                       item_exdate_list = g_slist_append 
(item_exdate_list, icaltime_as_ical_string (itt_utc));
                                }
                        }
                        e_gw_item_set_exdate_list (item, item_exdate_list);
@@ -524,6 +526,7 @@
 set_properties_from_cal_component (EGwItem *item, ECalComponent *comp, 
ECalBackendGroupwise *cbgw)
 {
        const char *uid, *location;
+       char *value;
        ECalComponentDateTime dt;
        ECalComponentClassification classif;
        ECalComponentTransparency transp;
@@ -581,7 +584,9 @@
                        if (!icaltime_get_timezone (*dt.value))
                                icaltime_set_timezone (dt.value, default_zone ? 
default_zone : utc);
                        itt_utc = icaltime_convert_to_zone (*dt.value, utc);
-                       e_gw_item_set_end_date (item, icaltime_as_ical_string 
(itt_utc));
+                       value = icaltime_as_ical_string (itt_utc);
+                       e_gw_item_set_end_date (item, value);
+                       g_free (value);
                        e_cal_component_free_datetime (&dt);
                }
 
@@ -596,7 +601,9 @@
                        if (!icaltime_get_timezone (*dt.value))
                                icaltime_set_timezone (dt.value, default_zone);
                        itt_utc = icaltime_convert_to_zone (*dt.value, utc);
-                       e_gw_item_set_due_date (item, icaltime_as_ical_string 
(itt_utc));
+                       value = icaltime_as_ical_string (itt_utc);
+                       e_gw_item_set_due_date (item,  value);
+                       g_free (value);
                        e_cal_component_free_datetime (&dt);
                }
 
@@ -672,7 +679,9 @@
                if (!icaltime_get_timezone (*dt.value))
                        icaltime_set_timezone (dt.value, default_zone);
                itt_utc = icaltime_convert_to_zone (*dt.value, utc);
-               e_gw_item_set_start_date (item, icaltime_as_ical_string 
(itt_utc));
+               value = icaltime_as_ical_string (itt_utc);
+               e_gw_item_set_start_date (item, value);
+               g_free (value);
        } else if (e_gw_item_get_item_type (item) == 
E_GW_ITEM_TYPE_APPOINTMENT) {
                e_cal_component_free_datetime (&dt);
                /* appointments need the start date property */
@@ -693,12 +702,16 @@
                if (!icaltime_get_timezone (*dt.value))
                        icaltime_set_timezone (dt.value, default_zone);
                itt_utc = icaltime_convert_to_zone (*dt.value, utc);
-               e_gw_item_set_creation_date (item, icaltime_as_ical_string 
(itt_utc));
+               value = icaltime_as_ical_string (itt_utc);
+               e_gw_item_set_creation_date (item, value);
+               g_free (value);
        } else {
                struct icaltimetype itt;
 
                e_cal_component_get_dtstamp (comp, &itt);
-               e_gw_item_set_creation_date (item, icaltime_as_ical_string 
(itt));
+               value = icaltime_as_ical_string (itt);
+               e_gw_item_set_creation_date (item, value);
+               g_free (value);
        }
 
        e_cal_component_free_icaltimetype (dt.value);
@@ -1556,7 +1569,7 @@
         GList *l;
         icaltimetype icaltime;
        icaltimezone *utc;
-        const char *start_date, *end_date;
+        char *start_date, *end_date;
 
        if (users == NULL)
                 return E_GW_CONNECTION_STATUS_INVALID_OBJECT;
@@ -1587,6 +1600,8 @@
 
         e_gw_message_write_string_parameter (msg, "startDate", NULL, 
start_date);
         e_gw_message_write_string_parameter (msg, "endDate", NULL, end_date);
+       g_free (start_date);
+       g_free (end_date);
 
        e_gw_message_write_footer (msg);
 
@@ -2026,7 +2041,7 @@
 
                /* Delay delivery */
                if (gopts->delay_enabled) {
-                       const char *value;
+                       char *value;
                        tt = icaltime_today ();
                        icaltime_adjust (&tt, gopts->delay_until, 0, 0, 0);
                        value = icaltime_as_ical_string (tt);

Modified: trunk/calendar/backends/groupwise/e-cal-backend-groupwise.c
==============================================================================
--- trunk/calendar/backends/groupwise/e-cal-backend-groupwise.c (original)
+++ trunk/calendar/backends/groupwise/e-cal-backend-groupwise.c Mon Feb 18 
07:33:06 2008
@@ -540,14 +540,17 @@
 
                if (calid->recur_key && calid->ical_id) {
                        const char *rid = NULL;
+                       char *temp;
                        icaltimetype tt = icaltime_from_string (calid->ical_id);
                        if (!tt.is_date) {
                                tt = icaltime_convert_to_zone (tt, 
priv->default_zone);
                                icaltime_set_timezone (&tt, priv->default_zone);
                                rid = icaltime_as_ical_string (tt);
+                               temp = rid;
                        } else
                                rid = calid->ical_id;
                        real_key = g_strconcat (calid->recur_key, "@", rid, 
NULL);
+                       g_free (temp);
                }
 
                if (!calid->recur_key || real_key) {
@@ -1545,7 +1548,7 @@
         if (!icalcomp)
                 return GNOME_Evolution_Calendar_InvalidObject;
 
-        *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+        *object = icalcomponent_as_ical_string (icalcomp);
 
         return GNOME_Evolution_Calendar_Success;
 }

Modified: trunk/calendar/backends/http/e-cal-backend-http.c
==============================================================================
--- trunk/calendar/backends/http/e-cal-backend-http.c   (original)
+++ trunk/calendar/backends/http/e-cal-backend-http.c   Mon Feb 18 07:33:06 2008
@@ -333,19 +333,24 @@
                        comp = e_cal_component_new ();
                        if (e_cal_component_set_icalcomponent (comp, 
icalcomponent_new_clone (subcomp))) {
                                const char *uid, *orig_key, *orig_value;
+                               char *obj;
 
                                e_cal_backend_cache_put_component (priv->cache, 
comp);
 
                                e_cal_component_get_uid (comp, &uid);
                                /* middle (void*) cast only because of 
'dereferencing type-punned pointer will break strict-aliasing rules' */
                                if (g_hash_table_lookup_extended (old_cache, 
uid, (void **)(void*)&orig_key, (void **)(void*)&orig_value)) {
+                                       obj = icalcomponent_as_ical_string 
(subcomp);
                                        e_cal_backend_notify_object_modified 
(E_CAL_BACKEND (cbhttp),
                                                                              
orig_value,
-                                                                             
icalcomponent_as_ical_string (subcomp));
+                                                                             
obj);
+                                       g_free (obj);
                                        g_hash_table_remove (old_cache, uid);
                                } else {
+                                       obj = icalcomponent_as_ical_string 
(subcomp);
                                        e_cal_backend_notify_object_created 
(E_CAL_BACKEND (cbhttp),
-                                                                            
icalcomponent_as_ical_string (subcomp));
+                                                                            
obj);
+                                       g_free (obj);
                                }
                        }
 
@@ -688,7 +693,7 @@
 
        kind = e_cal_backend_get_kind (E_CAL_BACKEND (backend));
        icalcomp = e_cal_util_new_component (kind);
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
        icalcomponent_free (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
@@ -746,7 +751,7 @@
        if (!icalcomp)
                return GNOME_Evolution_Calendar_InvalidObject;
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
 }
@@ -1048,7 +1053,7 @@
                if (e_cal_backend_mail_account_get_default (&address, &name)) {
                         vfb = create_user_free_busy (cbhttp, address, name, 
start, end);
                         calobj = icalcomponent_as_ical_string (vfb);
-                        *freebusy = g_list_append (*freebusy, g_strdup 
(calobj));
+                        *freebusy = g_list_append (*freebusy, calobj);
                         icalcomponent_free (vfb);
                         g_free (address);
                         g_free (name);
@@ -1060,7 +1065,7 @@
                         if (e_cal_backend_mail_account_is_valid (address, 
&name)) {
                                 vfb = create_user_free_busy (cbhttp, address, 
name, start, end);
                                 calobj = icalcomponent_as_ical_string (vfb);
-                                *freebusy = g_list_append (*freebusy, g_strdup 
(calobj));
+                                *freebusy = g_list_append (*freebusy, calobj);
                                 icalcomponent_free (vfb);
                                 g_free (name);
                         }

Modified: trunk/calendar/backends/weather/e-cal-backend-weather.c
==============================================================================
--- trunk/calendar/backends/weather/e-cal-backend-weather.c     (original)
+++ trunk/calendar/backends/weather/e-cal-backend-weather.c     Mon Feb 18 
07:33:06 2008
@@ -149,26 +149,32 @@
        l = e_cal_backend_cache_get_components (priv->cache);
        for (; l != NULL; l = g_list_next (l)) {
                ECalComponentId *id;
+               char *obj;
 
                icomp = e_cal_component_get_icalcomponent (E_CAL_COMPONENT 
(l->data));
                id = e_cal_component_get_id (E_CAL_COMPONENT (l->data));
 
+               obj = icalcomponent_as_ical_string (icomp);
                e_cal_backend_notify_object_removed (E_CAL_BACKEND (cbw),
                        id,
-                       icalcomponent_as_ical_string (icomp),
+                       obj,
                        NULL);
 
                e_cal_component_free_id (id);
+               g_free (obj);
                g_object_unref (G_OBJECT (l->data));
        }
        g_list_free (l);
        e_file_cache_clean (E_FILE_CACHE (priv->cache));
 
        for (l = forecasts; l != NULL; l = g_list_next (l)) {
+               char *obj;
                comp = create_weather (cbw, l->data);
                e_cal_backend_cache_put_component (priv->cache, comp);
                icomp = e_cal_component_get_icalcomponent (comp);
-               e_cal_backend_notify_object_created (E_CAL_BACKEND (cbw), 
icalcomponent_as_ical_string (icomp));
+               obj = icalcomponent_as_ical_string (icomp);
+               e_cal_backend_notify_object_created (E_CAL_BACKEND (cbw), obj);
+               g_free (obj);
        }
 
        priv->is_loading = FALSE;
@@ -579,7 +585,7 @@
        if (!icalcomp)
                return GNOME_Evolution_Calendar_InvalidObject;
 
-       *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       *object = icalcomponent_as_ical_string (icalcomp);
 
        return GNOME_Evolution_Calendar_Success;
 }
@@ -662,7 +668,7 @@
        icalcomponent_set_dtend (vfb, icaltime_from_timet_with_zone (end, 
FALSE, utc_zone));
 
        calobj = icalcomponent_as_ical_string (vfb);
-       *freebusy = g_list_append (NULL, g_strdup (calobj));
+       *freebusy = g_list_append (NULL, calobj);
        icalcomponent_free (vfb);
 
        return GNOME_Evolution_Calendar_Success;

Modified: trunk/calendar/libecal/e-cal-component.c
==============================================================================
--- trunk/calendar/libecal/e-cal-component.c    (original)
+++ trunk/calendar/libecal/e-cal-component.c    Mon Feb 18 07:33:06 2008
@@ -1245,7 +1245,7 @@
 e_cal_component_get_as_string (ECalComponent *comp)
 {
        ECalComponentPrivate *priv;
-       char *str, *buf;
+       char *str;
 
        g_return_val_if_fail (comp != NULL, NULL);
        g_return_val_if_fail (E_IS_CAL_COMPONENT (comp), NULL);
@@ -1256,16 +1256,9 @@
        /* Ensure that the user has committed the new SEQUENCE */
        g_return_val_if_fail (priv->need_sequence_inc == FALSE, NULL);
 
-       /* We dup the string; libical owns that memory */
-
        str = icalcomponent_as_ical_string (priv->icalcomp);
 
-       if (str)
-               buf = g_strdup (str);
-       else
-               buf = NULL;
-
-       return buf;
+       return str;
 }
 
 /* Used from g_hash_table_foreach(); ensures that an alarm subcomponent
@@ -3568,7 +3561,7 @@
  *
  * Return value: the recurrence ID as a string.
  */
-const char *
+char *
 e_cal_component_get_recurid_as_string (ECalComponent *comp)
 {
         ECalComponentRange range;
@@ -3584,7 +3577,7 @@
         e_cal_component_free_range (&range);
 
         return icaltime_is_valid_time (tt) && !icaltime_is_null_time (tt) ?
-                icaltime_as_ical_string (tt) : "0";
+                icaltime_as_ical_string (tt) : g_strdup ("0");
 }
 
 /**

Modified: trunk/calendar/libecal/e-cal-component.h
==============================================================================
--- trunk/calendar/libecal/e-cal-component.h    (original)
+++ trunk/calendar/libecal/e-cal-component.h    Mon Feb 18 07:33:06 2008
@@ -292,7 +292,7 @@
 void e_cal_component_set_priority (ECalComponent *comp, int *priority);
 
 void e_cal_component_get_recurid (ECalComponent *comp, ECalComponentRange 
*recur_id);
-const char *e_cal_component_get_recurid_as_string (ECalComponent *comp);
+char *e_cal_component_get_recurid_as_string (ECalComponent *comp);
 void e_cal_component_set_recurid (ECalComponent *comp, ECalComponentRange 
*recur_id);
 
 void e_cal_component_get_rdate_list (ECalComponent *comp, GSList 
**period_list);

Modified: trunk/calendar/libecal/e-cal-recur.c
==============================================================================
--- trunk/calendar/libecal/e-cal-recur.c        (original)
+++ trunk/calendar/libecal/e-cal-recur.c        Mon Feb 18 07:33:06 2008
@@ -3997,7 +3997,8 @@
        icalvalue *value;
        icaltimezone *utc_zone;
        struct icaltimetype icaltime;
-       const char *end_date_string, *xname;
+       const char *xname;
+       char *end_date_string;
 
        /* We save the value as a UTC DATE-TIME. */
        utc_zone = icaltimezone_get_utc_timezone ();
@@ -4022,6 +4023,8 @@
        param = icalparameter_new_x (end_date_string);
        icalparameter_set_xname (param, EVOLUTION_END_DATE_PARAMETER);
        icalproperty_add_parameter (prop, param);
+
+       g_free (end_date_string);       
 }
 
 #ifdef G_OS_WIN32

Modified: trunk/calendar/libecal/e-cal.c
==============================================================================
--- trunk/calendar/libecal/e-cal.c      (original)
+++ trunk/calendar/libecal/e-cal.c      Mon Feb 18 07:33:06 2008
@@ -4093,7 +4093,7 @@
        vtimezone_as_string = icalcomponent_as_ical_string (vtimezone_comp);
 
        g_hash_table_insert (data->timezone_hash, (char*) tzid,
-                            g_strdup (vtimezone_as_string));
+                            vtimezone_as_string);
 }
 
 /* This appends the value string to the GString given in data. */
@@ -4171,7 +4171,7 @@
                              vcal_string);
 
        /* Get the string for the VEVENT/VTODO. */
-       obj_string = g_strdup (icalcomponent_as_ical_string (icalcomp));
+       obj_string = icalcomponent_as_ical_string (icalcomp);
 
        /* If there were any timezones to send, create a complete VCALENDAR,
           else just send the VEVENT/VTODO string. */
@@ -4228,6 +4228,7 @@
        CORBA_Environment ev;
        ECalendarStatus status;
        ECalendarOp *our_op;
+       char *obj;
 
        e_return_error_if_fail (ecal && E_IS_CAL (ecal), 
E_CALENDAR_STATUS_INVALID_ARG);
 
@@ -4251,10 +4252,12 @@
 
        CORBA_exception_init (&ev);
 
-       GNOME_Evolution_Calendar_Cal_createObject (priv->cal, 
icalcomponent_as_ical_string (icalcomp), &ev);
+       obj = icalcomponent_as_ical_string (icalcomp);
+       GNOME_Evolution_Calendar_Cal_createObject (priv->cal, obj, &ev);
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (obj);
 
                CORBA_exception_free (&ev);
 
@@ -4263,6 +4266,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (obj);
        CORBA_exception_free (&ev);
 
         e_flag_wait (our_op->done);
@@ -4304,6 +4308,7 @@
        CORBA_Environment ev;
        ECalendarStatus status;
        ECalendarOp *our_op;
+       char *obj;
 
        e_return_error_if_fail (ecal && E_IS_CAL (ecal), 
E_CALENDAR_STATUS_INVALID_ARG);
        e_return_error_if_fail (icalcomp, E_CALENDAR_STATUS_INVALID_ARG);
@@ -4328,10 +4333,12 @@
 
        CORBA_exception_init (&ev);
 
-       GNOME_Evolution_Calendar_Cal_modifyObject (priv->cal, 
icalcomponent_as_ical_string (icalcomp), mod, &ev);
+       obj = icalcomponent_as_ical_string (icalcomp);
+       GNOME_Evolution_Calendar_Cal_modifyObject (priv->cal, obj, mod, &ev);
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (obj);
 
                CORBA_exception_free (&ev);
 
@@ -4340,6 +4347,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (obj);
        CORBA_exception_free (&ev);
 
        e_flag_wait (our_op->done);
@@ -4468,6 +4476,7 @@
        CORBA_Environment ev;
        ECalendarStatus status;
        ECalendarOp *our_op;
+       char *obj;
 
        e_return_error_if_fail (ecal && E_IS_CAL (ecal), 
E_CALENDAR_STATUS_INVALID_ARG);
 
@@ -4491,10 +4500,12 @@
 
        CORBA_exception_init (&ev);
 
-       GNOME_Evolution_Calendar_Cal_receiveObjects (priv->cal, 
icalcomponent_as_ical_string (icalcomp), &ev);
+       obj = icalcomponent_as_ical_string (icalcomp);
+       GNOME_Evolution_Calendar_Cal_receiveObjects (priv->cal, obj, &ev);
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (obj);
 
                CORBA_exception_free (&ev);
 
@@ -4503,6 +4514,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (obj);
        CORBA_exception_free (&ev);
 
        e_flag_wait (our_op->done);
@@ -4536,6 +4548,7 @@
        CORBA_Environment ev;
        ECalendarStatus status;
        ECalendarOp *our_op;
+       char *obj;
 
        e_return_error_if_fail (ecal && E_IS_CAL (ecal), 
E_CALENDAR_STATUS_INVALID_ARG);
 
@@ -4559,10 +4572,12 @@
 
        CORBA_exception_init (&ev);
 
-       GNOME_Evolution_Calendar_Cal_sendObjects (priv->cal, 
icalcomponent_as_ical_string (icalcomp), &ev);
+       obj = icalcomponent_as_ical_string (icalcomp);
+       GNOME_Evolution_Calendar_Cal_sendObjects (priv->cal, obj, &ev);
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (obj);
 
                CORBA_exception_free (&ev);
 
@@ -4571,6 +4586,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (obj);
        CORBA_exception_free (&ev);
 
        e_flag_wait (our_op->done);
@@ -4740,7 +4756,7 @@
        CORBA_Environment ev;
        ECalendarStatus status;
        ECalendarOp *our_op;
-       const char *tzobj;
+       char *tzobj;
        icalcomponent *icalcomp;
 
        e_return_error_if_fail (ecal && E_IS_CAL (ecal), 
E_CALENDAR_STATUS_INVALID_ARG);
@@ -4791,6 +4807,7 @@
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (tzobj);
 
                CORBA_exception_free (&ev);
 
@@ -4799,6 +4816,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (tzobj);
        CORBA_exception_free (&ev);
 
        e_flag_wait (our_op->done);
@@ -4940,6 +4958,7 @@
        if (BONOBO_EX (&ev)) {
                e_calendar_remove_op (ecal, our_op);
                e_calendar_free_op (our_op);
+               g_free (tzobj);
 
                CORBA_exception_free (&ev);
 
@@ -4948,6 +4967,7 @@
                E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, 
error);
        }
 
+       g_free (tzobj);
        CORBA_exception_free (&ev);
 
        e_flag_wait (our_op->done);

Modified: trunk/calendar/libedata-cal/e-cal-backend-cache.c
==============================================================================
--- trunk/calendar/libedata-cal/e-cal-backend-cache.c   (original)
+++ trunk/calendar/libedata-cal/e-cal-backend-cache.c   Mon Feb 18 07:33:06 2008
@@ -377,7 +377,7 @@
                                   ECalComponent *comp)
 {
        char *real_key, *uid, *comp_str;
-       const char *rid;
+       char *rid;
        gboolean retval;
        ECalBackendCachePrivate *priv;
 
@@ -402,6 +402,7 @@
 
        g_free (real_key);
        g_free (comp_str);
+       g_free (rid);
 
        return retval;
 }
@@ -605,6 +606,7 @@
        icaltimezone *new_zone;
        icalcomponent *icalcomp;
        gboolean retval;
+       char *obj;
 
        g_return_val_if_fail (E_IS_CAL_BACKEND_CACHE (cache), FALSE);
        g_return_val_if_fail (zone != NULL, FALSE);
@@ -616,15 +618,17 @@
        if (!icalcomp)
                return FALSE;
 
+       obj = icalcomponent_as_ical_string (icalcomp);
        if (e_file_cache_get_object (E_FILE_CACHE (cache), 
icaltimezone_get_tzid ((icaltimezone *)zone))) {
                retval = e_file_cache_replace_object (E_FILE_CACHE (cache),
                                                      icaltimezone_get_tzid 
((icaltimezone *)zone),
-                                                     
icalcomponent_as_ical_string (icalcomp));
+                                                     obj);
        } else {
                retval = e_file_cache_add_object (E_FILE_CACHE (cache),
                                                  icaltimezone_get_tzid 
((icaltimezone *)zone),
-                                                 icalcomponent_as_ical_string 
(icalcomp));
+                                                 obj);
        }
+       g_free (obj);
 
        if (!retval)
                return FALSE;
@@ -652,6 +656,7 @@
        ECalBackendCachePrivate *priv;
        icalcomponent *icalcomp;
        gboolean retval;
+       char *obj;
 
        g_return_val_if_fail (E_IS_CAL_BACKEND_CACHE (cache), FALSE);
 
@@ -662,14 +667,16 @@
        if (!icalcomp)
                return FALSE;
 
+       obj = icalcomponent_as_ical_string (icalcomp);
        if (e_file_cache_get_object (E_FILE_CACHE (cache), "default_zone")) {
                retval = e_file_cache_replace_object (E_FILE_CACHE (cache), 
"default_zone",
-                                                     
icalcomponent_as_ical_string (icalcomp));
+                                                     obj);
        } else {
                retval = e_file_cache_add_object (E_FILE_CACHE (cache),
                                                 "default_zone",
-                                                 icalcomponent_as_ical_string 
(icalcomp));
+                                                 obj);
        }
+       g_free (obj);
 
        if (!retval)
                return FALSE;

Modified: trunk/calendar/libedata-cal/e-data-cal-view.c
==============================================================================
--- trunk/calendar/libedata-cal/e-data-cal-view.c       (original)
+++ trunk/calendar/libedata-cal/e-data-cal-view.c       Mon Feb 18 07:33:06 2008
@@ -102,9 +102,12 @@
                return;
        }
 
-       if (e_cal_component_is_instance (comp))
-               real_uid = g_strdup_printf ("[EMAIL PROTECTED]", uid, 
e_cal_component_get_recurid_as_string (comp));
-       else
+       if (e_cal_component_is_instance (comp)) {
+               char *str;
+               str = e_cal_component_get_recurid_as_string (comp)      ;
+               real_uid = g_strdup_printf ("[EMAIL PROTECTED]", uid, str);
+               g_free (str);
+       } else
                real_uid = g_strdup (uid);
 
        if (g_hash_table_lookup (priv->matched_objects, real_uid))

Modified: trunk/calendar/tests/ecal/test-ecal.c
==============================================================================
--- trunk/calendar/tests/ecal/test-ecal.c       (original)
+++ trunk/calendar/tests/ecal/test-ecal.c       Mon Feb 18 07:33:06 2008
@@ -116,9 +116,11 @@
                printf ("\n");
 
                for (l = objects; l; l = l->next) {
+                       char *obj = icalcomponent_as_ical_string (l->data);
                        printf ("------------------------------\n");
-                       printf ("%s", icalcomponent_as_ical_string (l->data));
+                       printf ("%s", obj);
                        printf ("------------------------------\n");
+                       free (obj);
                }
        }
 
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to