diff options
Diffstat (limited to 'libical/src/libical/icaltimezone.c')
-rw-r--r-- | libical/src/libical/icaltimezone.c | 20 |
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 |