diff --git a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp index 79cff29210352f7e8f22a617d88e7c8c72262d4c..7832088ca6778184bb41cc852fe92219fd9b264b 100644 --- a/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp +++ b/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp @@ -74,6 +74,9 @@ #include <unicode/ucnv_err.h> #include <unicode/ustring.h> #include <unicode/udata.h> +#if (U_ICU_VERSION_MAJOR_NUM >= 2) + #include <unicode/uclean.h> +#endif #if !defined(XML_OS390) && !defined(XML_AS400) && !defined(XML_HPUX) && !defined(XML_PTX) @@ -167,6 +170,10 @@ ICUTransService::ICUTransService() ICUTransService::~ICUTransService() { + #if (U_ICU_VERSION_MAJOR_NUM >= 2) + // release all lasily allocated data + u_cleanup(); + #endif }