std::unique_ptr<String> pLanguageLocaleID(new (std::nothrow) String(loc.GetLanguageCodeString()));
SysTryReturn(NID_LCL, pLanguageLocaleID, null, E_OUT_OF_MEMORY,"[%s] Memory allocation failed",GetErrorMessage(E_OUT_OF_MEMORY));
- result r = pAvailableLanguageList->Add(pLanguageLocaleID.get());
- SysTryReturn(NID_LCL, r == E_SUCCESS, null, E_SYSTEM,
+ if (!pAvailableLanguageList->Contains(*(pLanguageLocaleID.get())))
+ {
+ result r = pAvailableLanguageList->Add(pLanguageLocaleID.get());
+ SysTryReturn(NID_LCL, r == E_SUCCESS, null, E_SYSTEM,
"[%s] It is failed to add a locale string [%ls].", GetErrorMessage(E_SYSTEM), pLanguageLocaleID->GetPointer());
- pLanguageLocaleID.release();
+ pLanguageLocaleID.release();
+ }
}
}