mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-07 06:25:30 +00:00
ICU-10992 fix memory leak
X-SVN-Rev: 36539
This commit is contained in:
parent
e763ff013b
commit
9a6f69ef42
1 changed files with 21 additions and 13 deletions
|
@ -1582,35 +1582,43 @@ static void TestOverrideNumberFormat(void) {
|
|||
char bbuf2[kBbufMax];
|
||||
const char* localeString = "zh@numbers=hanidays";
|
||||
UDateFormat* fmt;
|
||||
UNumberFormat* overrideFmt;
|
||||
const UNumberFormat* getter_result;
|
||||
int32_t i;
|
||||
unsigned j;
|
||||
|
||||
fmt=udat_open(UDAT_PATTERN, UDAT_PATTERN,"en_US",NULL,0,pattern, u_strlen(pattern), &status);
|
||||
if (!assertSuccess("udat_open()", &status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
overrideFmt = unum_open(UNUM_DEFAULT, NULL, 0, localeString, NULL, &status);
|
||||
assertSuccess("unum_open()", &status);
|
||||
|
||||
expected=(UChar*)malloc(sizeof(UChar) * 10);
|
||||
fields=(UChar*)malloc(sizeof(UChar) * 10);
|
||||
u_uastrcpy(fields, "d");
|
||||
u_uastrcpy(pattern,"MM d");
|
||||
|
||||
fmt=udat_open(UDAT_PATTERN, UDAT_PATTERN,"en_US",NULL,0,pattern, u_strlen(pattern), &status);
|
||||
if (!assertSuccess("udat_open()", &status)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// loop 50 times to check getter/setter
|
||||
for (i = 0; i < 50; i++){
|
||||
for (i = 0; i < 5; i++){
|
||||
UNumberFormat* overrideFmt;
|
||||
overrideFmt = unum_open(UNUM_DEFAULT, NULL, 0, localeString, NULL, &status);
|
||||
assertSuccess("unum_open()", &status);
|
||||
|
||||
udat_adoptNumberFormatForFields(fmt, fields, overrideFmt, &status);
|
||||
overrideFmt = NULL; // no longer valid
|
||||
assertSuccess("udat_setNumberFormatForField()", &status);
|
||||
|
||||
getter_result = udat_getNumberFormatForField(fmt, 'd');
|
||||
if (getter_result != overrideFmt)
|
||||
log_err("FAIL: udat_getNumberFormatForField does not work\n");
|
||||
if(getter_result == NULL) {
|
||||
log_err("FAIL: udat_getNumberFormatForField did not return a valid pointer\n");
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
UNumberFormat* overrideFmt;
|
||||
overrideFmt = unum_open(UNUM_DEFAULT, NULL, 0, localeString, NULL, &status);
|
||||
assertSuccess("unum_open()", &status);
|
||||
udat_setNumberFormat(fmt, overrideFmt); // test the same override NF will not crash
|
||||
}
|
||||
udat_setNumberFormat(fmt, overrideFmt); // test the same override NF will not crash
|
||||
udat_close(fmt);
|
||||
|
||||
for (j=0; i<sizeof(overrideNumberFormat)/sizeof(overrideNumberFormat[0]); i++){
|
||||
|
|
Loading…
Add table
Reference in a new issue