summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp')
-rw-r--r--Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp b/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
index 336292c5458..7d1037f8bdd 100644
--- a/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
+++ b/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
@@ -1548,14 +1548,9 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode
UBool addKeywordOther = TRUE;
RuleChain *node = header;
while (node != nullptr) {
- auto newElem = new UnicodeString(node->fKeyword);
- if (newElem == nullptr) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- fKeywordNames.addElementX(newElem, status);
+ LocalPointer<UnicodeString> newElem(node->fKeyword.clone(), status);
+ fKeywordNames.adoptElement(newElem.orphan(), status);
if (U_FAILURE(status)) {
- delete newElem;
return;
}
if (0 == node->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
@@ -1565,14 +1560,9 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode
}
if (addKeywordOther) {
- auto newElem = new UnicodeString(PLURAL_KEYWORD_OTHER);
- if (newElem == nullptr) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- fKeywordNames.addElementX(newElem, status);
+ LocalPointer<UnicodeString> newElem(new UnicodeString(PLURAL_KEYWORD_OTHER), status);
+ fKeywordNames.adoptElement(newElem.orphan(), status);
if (U_FAILURE(status)) {
- delete newElem;
return;
}
}