From 7708a760c001c5e0d546430ad18007620aea04e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Balbont=C3=ADn?= Date: Fri, 15 Jul 2016 23:17:01 +0000 Subject: [PATCH] ICU-12614 DateFormatSymbols resource bundle data loading update. Fix memory leak in MessageFormat. X-SVN-Rev: 38973 --- icu4c/source/i18n/dtfmtsym.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/icu4c/source/i18n/dtfmtsym.cpp b/icu4c/source/i18n/dtfmtsym.cpp index 4d4a0c8a720..e60fd7807dc 100644 --- a/icu4c/source/i18n/dtfmtsym.cpp +++ b/icu4c/source/i18n/dtfmtsym.cpp @@ -1923,7 +1923,9 @@ initLeapMonthPattern(UnicodeString *field, int32_t index, CalendarDataSink &sink } else { field[index].setToBogus(); } + return; } + status = U_MISSING_RESOURCE_ERROR; } } @@ -2123,7 +2125,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError if (status == U_MISSING_RESOURCE_ERROR) { ures_close(ctb); if (uprv_strcmp(calendarTypeCArray, gGregorianTag) != 0) { - calendarType.setTo(TRUE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); + calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); calendarSink.visitAllResources(); status = oldStatus; continue; @@ -2146,7 +2148,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError // Gregorian is always the last fallback if (calendarType.isBogus()) { - calendarType.setTo(kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); + calendarType.setTo(FALSE, kGregorianTagUChar, UPRV_LENGTHOF(kGregorianTagUChar)); calendarSink.visitAllResources(); } }