From d3acad538059ba27f269d390516be7e9fb44294f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 2 Jun 2015 21:49:46 +0300 Subject: [PATCH] lib-fts: Do all the ICU cleanup in fts_icu_deinit(). --- src/lib-fts/fts-filter.c | 6 ++---- src/lib-fts/fts-icu.c | 7 +++++++ src/lib-fts/fts-icu.h | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lib-fts/fts-filter.c b/src/lib-fts/fts-filter.c index ab49c91e35..54638b4d36 100644 --- a/src/lib-fts/fts-filter.c +++ b/src/lib-fts/fts-filter.c @@ -3,10 +3,8 @@ #include "lib.h" #include "array.h" #include "fts-language.h" +#include "fts-icu.h" #include "fts-filter-private.h" -#ifdef HAVE_LIBICU -# include -#endif static ARRAY(const struct fts_filter *) fts_filter_classes; @@ -23,7 +21,7 @@ void fts_filters_init(void) void fts_filters_deinit(void) { #ifdef HAVE_LIBICU - u_cleanup(); + fts_icu_deinit(); #endif array_free(&fts_filter_classes); } diff --git a/src/lib-fts/fts-icu.c b/src/lib-fts/fts-icu.c index e10f157ac6..e79d9b18cd 100644 --- a/src/lib-fts/fts-icu.c +++ b/src/lib-fts/fts-icu.c @@ -5,6 +5,8 @@ #include "unichar.h" #include "fts-icu.h" +#include + void fts_icu_utf8_to_utf16(buffer_t *dest_utf16, const char *src_utf8) { UErrorCode err = U_ZERO_ERROR; @@ -108,3 +110,8 @@ int fts_icu_translate(buffer_t *dest_utf16, const UChar *src_utf16, buffer_set_used_size(dest_utf16, utf16_len * sizeof(UChar)); return 0; } + +void fts_icu_deinit(void) +{ + u_cleanup(); +} diff --git a/src/lib-fts/fts-icu.h b/src/lib-fts/fts-icu.h index 928b4b0b9c..bf867908e1 100644 --- a/src/lib-fts/fts-icu.h +++ b/src/lib-fts/fts-icu.h @@ -14,4 +14,7 @@ int fts_icu_translate(buffer_t *dest_utf16, const UChar *src_utf16, unsigned int src_len, UTransliterator *transliterator, const char **error_r); +/* Free all the memory used by ICU functions. */ +void fts_icu_deinit(void); + #endif -- 2.47.3