mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 08:53:20 +00:00
ICU-20802 Need to use LocalMemory in uloc_openKeywordList, not LocalPointer
This commit is contained in:
parent
616b3c5647
commit
d89c4909f8
1 changed files with 6 additions and 9 deletions
|
@ -1457,22 +1457,19 @@ static const UEnumeration gKeywordsEnum = {
|
|||
U_CAPI UEnumeration* U_EXPORT2
|
||||
uloc_openKeywordList(const char *keywordList, int32_t keywordListSize, UErrorCode* status)
|
||||
{
|
||||
LocalPointer<UKeywordsContext> myContext;
|
||||
LocalPointer<UEnumeration> result;
|
||||
LocalMemory<UKeywordsContext> myContext;
|
||||
LocalMemory<UEnumeration> result;
|
||||
|
||||
if (U_FAILURE(*status)) {
|
||||
return nullptr;
|
||||
}
|
||||
result.adoptInsteadAndCheckErrorCode(static_cast<UEnumeration *>(uprv_malloc(sizeof(UEnumeration))), *status);
|
||||
if (U_FAILURE(*status)) {
|
||||
myContext.adoptInstead(static_cast<UKeywordsContext *>(uprv_malloc(sizeof(UKeywordsContext))));
|
||||
result.adoptInstead(static_cast<UEnumeration *>(uprv_malloc(sizeof(UEnumeration))));
|
||||
if (myContext.isNull() || result.isNull()) {
|
||||
*status = U_MEMORY_ALLOCATION_ERROR;
|
||||
return nullptr;
|
||||
}
|
||||
uprv_memcpy(result.getAlias(), &gKeywordsEnum, sizeof(UEnumeration));
|
||||
|
||||
myContext.adoptInsteadAndCheckErrorCode(static_cast<UKeywordsContext *>(uprv_malloc(sizeof(UKeywordsContext))), *status);
|
||||
if (U_FAILURE(*status)) {
|
||||
return nullptr;
|
||||
}
|
||||
myContext->keywords = static_cast<char *>(uprv_malloc(keywordListSize+1));
|
||||
if (myContext->keywords == nullptr) {
|
||||
*status = U_MEMORY_ALLOCATION_ERROR;
|
||||
|
|
Loading…
Add table
Reference in a new issue