dovecot-2.2: lib-fts: Call u_clean() at deinit to free up all of...
dovecot at dovecot.org
dovecot at dovecot.org
Mon May 18 10:55:26 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/d097a9779c37
changeset: 18726:d097a9779c37
user: Timo Sirainen <tss at iki.fi>
date: Mon May 18 06:51:24 2015 -0400
description:
lib-fts: Call u_clean() at deinit to free up all of libicu's memory.
diffstat:
src/lib-fts/fts-filter-normalizer-icu.c | 9 +++++++++
src/lib-fts/test-fts-icu.c | 6 +++++-
2 files changed, 14 insertions(+), 1 deletions(-)
diffs (54 lines):
diff -r c2ce65bb1caf -r d097a9779c37 src/lib-fts/fts-filter-normalizer-icu.c
--- a/src/lib-fts/fts-filter-normalizer-icu.c Mon May 18 06:46:32 2015 -0400
+++ b/src/lib-fts/fts-filter-normalizer-icu.c Mon May 18 06:51:24 2015 -0400
@@ -10,6 +10,8 @@
#ifdef HAVE_LIBICU
#include "fts-icu.h"
+#include <unicode/uclean.h>
+
struct fts_filter_normalizer_icu {
struct fts_filter filter;
pool_t pool;
@@ -22,6 +24,8 @@
string_t *utf8_token;
};
+static bool icu_exit_callback_set = FALSE;
+
static void fts_filter_normalizer_icu_destroy(struct fts_filter *filter)
{
struct fts_filter_normalizer_icu *np =
@@ -54,6 +58,11 @@
}
}
+ if (!icu_exit_callback_set) {
+ icu_exit_callback_set = TRUE;
+ lib_atexit(u_cleanup);
+ }
+
pp = pool_alloconly_create(MEMPOOL_GROWING"fts_filter_normalizer_icu",
sizeof(struct fts_filter_normalizer_icu));
np = p_new(pp, struct fts_filter_normalizer_icu, 1);
diff -r c2ce65bb1caf -r d097a9779c37 src/lib-fts/test-fts-icu.c
--- a/src/lib-fts/test-fts-icu.c Mon May 18 06:46:32 2015 -0400
+++ b/src/lib-fts/test-fts-icu.c Mon May 18 06:51:24 2015 -0400
@@ -7,6 +7,8 @@
#include "test-common.h"
#include "fts-icu.h"
+#include <unicode/uclean.h>
+
static void test_fts_icu_utf8_to_utf16_ascii_resize(void)
{
buffer_t *dest = buffer_create_dynamic(pool_datastack_create(), 5);
@@ -150,5 +152,7 @@
test_fts_icu_translate_resize,
NULL
};
- return test_run(test_functions);
+ int ret = test_run(test_functions);
+ u_cleanup();
+ return ret;
}
More information about the dovecot-cvs
mailing list