Index: source/i18n/coll.cpp |
diff --git a/source/i18n/coll.cpp b/source/i18n/coll.cpp |
index c4845f2b1f9e62e77fbe9336abe01a1d700bafff..cb10f23696b45e1dd136e0c1fee610dc425fb04d 100644 |
--- a/source/i18n/coll.cpp |
+++ b/source/i18n/coll.cpp |
@@ -869,37 +869,23 @@ Collator::getAvailableLocales(void) |
StringEnumeration* U_EXPORT2 |
Collator::getKeywords(UErrorCode& status) { |
- // This is a wrapper over ucol_getKeywords |
- UEnumeration* uenum = ucol_getKeywords(&status); |
- if (U_FAILURE(status)) { |
- uenum_close(uenum); |
- return NULL; |
- } |
- return new UStringEnumeration(uenum); |
+ return UStringEnumeration::fromUEnumeration( |
+ ucol_getKeywords(&status), status); |
} |
StringEnumeration* U_EXPORT2 |
Collator::getKeywordValues(const char *keyword, UErrorCode& status) { |
- // This is a wrapper over ucol_getKeywordValues |
- UEnumeration* uenum = ucol_getKeywordValues(keyword, &status); |
- if (U_FAILURE(status)) { |
- uenum_close(uenum); |
- return NULL; |
- } |
- return new UStringEnumeration(uenum); |
+ return UStringEnumeration::fromUEnumeration( |
+ ucol_getKeywordValues(keyword, &status), status); |
} |
StringEnumeration* U_EXPORT2 |
Collator::getKeywordValuesForLocale(const char* key, const Locale& locale, |
UBool commonlyUsed, UErrorCode& status) { |
- // This is a wrapper over ucol_getKeywordValuesForLocale |
- UEnumeration *uenum = ucol_getKeywordValuesForLocale(key, locale.getName(), |
- commonlyUsed, &status); |
- if (U_FAILURE(status)) { |
- uenum_close(uenum); |
- return NULL; |
- } |
- return new UStringEnumeration(uenum); |
+ return UStringEnumeration::fromUEnumeration( |
+ ucol_getKeywordValuesForLocale( |
+ key, locale.getName(), commonlyUsed, &status), |
+ status); |
} |
Locale U_EXPORT2 |