aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libical/icaltimezone.c
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/libical/icaltimezone.c')
-rw-r--r--libical/src/libical/icaltimezone.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/libical/src/libical/icaltimezone.c b/libical/src/libical/icaltimezone.c
index bf66fcd5d1..91f72470c7 100644
--- a/libical/src/libical/icaltimezone.c
+++ b/libical/src/libical/icaltimezone.c
@@ -201,10 +201,12 @@ icaltimezone_new (void)
/* Frees all memory used for the icaltimezone. */
void
-icaltimezone_free (icaltimezone *zone)
+icaltimezone_free (icaltimezone *zone,
+ int free_struct)
{
icaltimezone_reset (zone);
- free (zone);
+ if (free_struct)
+ free (zone);
}
@@ -1222,6 +1224,20 @@ icaltimezone_array_append_from_vtimezone (icalarray *timezones,
}
+void
+icaltimezone_array_free (icalarray *timezones)
+{
+ icaltimezone *zone;
+ int i;
+
+ for (i = 0; i < timezones->num_elements; i++) {
+ zone = icalarray_element_at (timezones, i);
+ icaltimezone_free (zone, 0);
+ }
+
+ icalarray_free (timezones);
+}
+
/*
* BUILTIN TIMEZONE HANDLING