From: Kumar P. <kpr...@ad...> - 2008-01-30 05:02:07
|
Hi George, Thanks for the reply! Somehow, I overlooked this issue in the test code = itself :-(. Will take extra care before sending issues to the mailing = list. Thanks, Pratyush -----Original Message----- From: icu...@li... = [mailto:icu...@li...] On Behalf Of George = Rhoten Sent: Tuesday, January 29, 2008 10:55 PM To: ICU support mailing list Subject: Re: [icu-support] Memory leaks in icu3.6 This isn't Java, which has a garbage collector ;-) I believe adding = these=20 lines to your code should fix the problem. void Test_NumberFormat() .... delete numberFormat; .... } void Test_tranlist() .... delete translit; .... } George Rhoten IBM Globalization Center of Competency/ICU San Jos=E9, CA, USA http://www.icu-project.org/ "Kumar Pratyush" <kpr...@ad...>=20 Sent by: icu...@li... 01/29/2008 12:32 AM Please respond to ICU support mailing list <icu...@li...> To "ICU support mailing list" <icu...@li...> cc Subject [icu-support] Memory leaks in icu3.6 Hi, =20 I tried following sample code with DevPartner (for VC8) and found the=20 memory leaks.=20 =20 =20 void Test_NumberFormat() { UErrorCode err =3D U_ZERO_ERROR; UnicodeString s; double d =3D 1234.56; =20 NumberFormat* numberFormat =3D NumberFormat::createInstance(err); numberFormat->format(d, s); UChar const* buf =3D s.getTerminatedBuffer(); =20 char const* localeID =3D = numberFormat->getLocaleID(ULOC_VALID_LOCALE,=20 err); u_cleanup(); } =20 Call stack shown is - =20 Function - File - Line no =20 Uprv_malloc_3_6 - cmemory.c - 45 UMemory:operator new - uobject.cpp - 60 NumberFormat:makeInstance - numfmt.cpp - 877 NumberFormat:createInstance - numfmt.cpp - 663 NumberFormat:createInstance - numfmt.cpp - 387 =20 Another stack trace is -=20 =20 Uprv_malloc_3_6 - cmemory.c - 45 UMemory:operator new - uobject.cpp - 60 NumberFormat:makeInstance - numfmt.cpp - 893 NumberFormat:createInstance - numfmt.cpp - 663 NumberFormat:createInstance - numfmt.cpp - 387 =20 =20 Another leak that I found is using the code -=20 =20 void Test_tranlist() { UErrorCode err =3D U_ZERO_ERROR; =20 int32_t const maxIdNum =3D Transliterator::countAvailableIDs(); =20 UnicodeString const* translitId =3D=20 &Transliterator::getAvailableID(maxIdNum - 1); =20 Transliterator* const translit =3D=20 Transliterator::createInstance(*translitId, UTRANS_FORWARD, err); u_cleanup(); } =20 Call stack shown in this case is - =20 uprv_mallo_3_6 - cmemory.c - 45 uhash_allocate - uhash.c - 222 uhash_init - uhash.c - 265 uhash_create - uhash.c - 290 uhash_open_3_6 - uhash.c - 537 =20 =20 I found this leak while running with ICU3.4 as well. Are these known=20 problems?=20 =20 =20 Thanks, Pratyush = -------------------------------------------------------------------------= This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ icu-support mailing list - icu...@li... To Un/Subscribe: = https://lists.sourceforge.net/lists/listinfo/icu-support -------------------------------------------------------------------------= This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ icu-support mailing list - icu...@li... To Un/Subscribe: = https://lists.sourceforge.net/lists/listinfo/icu-support |